尽管包含更多条目,但数组仅在 for-loop 之后向 Struct 添加单个条目 - Swift/Xcode

Posted

技术标签:

【中文标题】尽管包含更多条目,但数组仅在 for-loop 之后向 Struct 添加单个条目 - Swift/Xcode【英文标题】:Array only adds single entry to Struct after for-loop despite containing more entries - Swift/Xcode 【发布时间】:2019-12-17 12:38:41 【问题描述】:

我正在运行for loop 来创建与下载文件数组匹配的过滤结果数组。输出let items 包含我想要的所有内容,但我似乎无法让它正确映射到结构中。如果我 print(items) 它显示所有结果,但如果我在 self.podepisodes = items 之后 print(self.podepisodes) 它只显示 1 个条目。

更多代码如下:


struct Episodes: Codable 
    let show: String
    let showHost: String
    let showDescription: String
    let showArtURL: String
    let epNumber: String
    let epTitle: String
    let epAudioURL: String
    let epArtURL: String
    let epLength: String
    let epDescription: String
    let releaseDate: String
    let date: String
    let exclusive: String
    let subscriptionAudio1: String
    let youtubeURL: String


 var podepisodes: [Episodes]?

//have omitted some code here in the interest of not posting a huge page load. Can edit and add it if anyone would like. 

    let JSONData = try JSONDecoder().decode([Episodes].self, from: data)

     DispatchQueue.main.async 

                    guard let trueLocation = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else return 
                    let filePath = trueLocation.path

   let fileList:  Array = try! self.fileManager.contentsOfDirectory(atPath: filePath)

                    for file in fileList 
                       let items = JSONData.filter  (item: Episodes) -> Bool in
                        return URL(string: item.epAudioURL)?.lastPathComponent == file

                    

                        self.podepisodes = items
                      print(items)
                         

                    print(self.podepisodes)

【问题讨论】:

【参考方案1】:

您必须将项目附加到数组中,现在您在循环中每次都覆盖self.podepisodes 的内容。所以将self.podepisodes = items替换为

self.podepisodes.append(contentsOf: items)

【讨论】:

非常感谢,我正在拔头发!我之前一直在尝试使用.append,但在错误的地方。再次感谢。

以上是关于尽管包含更多条目,但数组仅在 for-loop 之后向 Struct 添加单个条目 - Swift/Xcode的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 for-loop if 语句填充具有唯一随机数的数组?

Unity:OnCollisionEnter 仅在新条目时触发,但不会在具有相同名称的不同对象上的新条目时触发

For-Loop一个带有负迭代器的“空”向量?

如何设计神经网络的行为像For-Loop?

在数组中查找重复的条目

尽管有 web.config 条目,但带有 ASP.NET WCF 服务的 jQuery AJAX CORS 无法正常工作