swift - Codable 与 NSOrdered 集?

标签 swift codable

看起来 NSOrdered 不支持 Codable 协议(protocol)。 我正在使用 codable 来解析带有 alamofire 和 coredata 的数据。请问实现该目标的方法是什么?求助! :)

 self.photos = try values.decodeIfPresent([Photo].self, forKey: .photos)

最佳答案

JSON 没有有序集。它只有数组。因此,您需要通过调用其初始化程序将数组转换为 NSOrderedSet:

self.photos = NSOrderedSet(array:
    try values.decodeIfPresent([String].self, forKey: .photos) ?? [])

(也就是说,我强烈建议摆脱 NSOrderedSet。它是一团乱麻的数据结构,并且在 Swift 中表现不佳。你几乎总是更好地包装一个数组并在你插入它时控制它。如果你认为存在性能差异,你应该在假设之前对你的实际数据进行大量分析。)

关于swift - Codable 与 NSOrdered 集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56961335/

相关文章:

ios - 还有其他选项可以在 mapbox 中绘制多条路线吗?

Swift 4 解码简单根级别 json 值

json - 使用 Swift 4 中的 JSONDecoder,缺失的键可以使用默认值而不必是可选属性吗?

ios - 如何获取 ( 使用 struct :codable) parsing string in a pickerview 的结果

arrays - 如何在 Codable (Swift) 中保存多个数据

ios - 如何使用QLPreviewController快速显示远程文档

swift - 由于 Swift 超时,如何取消 cloudKit 操作?

xcode - 如何添加背景图片

ios - 如何在 swift 中实现 UICollectionView 的瀑布布局,根据获取的远程图像改变它们的高度?

swift - 在 Swift 中创建自定义 CodingKey 对象