【发布时间】:2018-08-11 01:24:32
【问题描述】:
我在“How (and when) do I use iCloud's encodeSystemFields method on CKRecord?”中看到了如何使用 NSKeyedArchiver 来缓存 CKRecord 的显着字段。有没有办法将 JSONEncoder 与encodeSystemFields 一起使用?我的其他缓存数据保存为 JSON,所以我希望 encodeSystemFields 适合它。
不幸的是,尽管Data 是可编码的,但在有效的 JSON 中不允许使用 JSONSerialization.isValidJSONObject,因此我不能将 NSKeyedArchiver 的输出塞入我的 JSON 序列化中。
let d = Data()
d is Codable // true
// ...encodeSystemFields...
JSONSerialization.isValidJSONObject([d]) // false
let listofd = [d]
JSONSerialization.isValidJSONObject(listofd) // false
let dictofd = ["test":d]
JSONSerialization.isValidJSONObject(dictofd) // false
d 是 Data 还是 NSMutableData 无关紧要。我得到了相同的结果。
【问题讨论】:
标签: ios json swift cloudkit foundation