尽管包含更多条目,但数组仅在 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 仅在新条目时触发,但不会在具有相同名称的不同对象上的新条目时触发
尽管有 web.config 条目,但带有 ASP.NET WCF 服务的 jQuery AJAX CORS 无法正常工作