swift - 可以用 NSOrdered 集编码吗?
问题描述
看起来 NSOrdered 不支持 Codable 协议。我正在使用 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 中表现不佳。你几乎总是更好地包装一个 Array 并控制何时插入它。如果你相信有性能差异,您应该在假设之前对实际数据进行大量分析。)
推荐阅读
- python - 使用 python 在 Rally 中创建新缺陷时出现错误
- c# - 如何在打字稿中解析 C# 通用集合列表
- firebase - 添加用户显示名
- python - Pandas 使用 reduce 选项在空数据帧上调用 apply 更改数据类型
- visual-studio-code - 使用 Monaco Editor 运行功能
- plsql - 为阶乘程序创建 plsql 函数
- javascript - this.props.history 没有重定向到主页
- node.js - 从 Node.js 为 Dialogflow 发送的默认响应负载是什么
- python - 在 LIST Python 中查找以元音开头的第一个字符串
- r - 如何在 R 中获得打印输出?