是否可以减少快速编码协议的样板代码

时间:2019-05-08 17:10:56

标签: json swift core-data codable

Codable很棒,它是唯一的json解析解决方案之一,它允许您将NSMangedObject模型分别前后来序列化为字典和JSON数据。

唯一的问题是涉及到很多样板代码,因为您必须提供枚举编码键以及必须为所有属性编写的编码和解码方法。

有什么办法可以减少样板代码。我尝试使用Mirror api来推断所有属性键及其类型,以便为实现它的任何类动态生成可编码协议的编码和解码方法。但是Mirror API不够强大,因为它有时无法提供正确的类类型,并且根本不包含有关NSManagedObject类型的信息。

由于可编码是常规快速使用中不可或缺的一部分,我想知道是否可以采取一些措施来简化样板代码。

1 个答案:

答案 0 :(得分:0)

NSManagedObject类中,不能使用Codable综合协议扩展。

原因是您必须调用指定的NSManagedObject初始化方法之一,以将新对象插入托管对象上下文。