看起来 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/