【发布时间】:2018-11-10 01:37:52
【问题描述】:
我正在研究混合搭配 iOS 源代码。我已经为 swift 数据模型类实现了可编码,这减少了编写解析器逻辑的负担。我试图使我的目标 c 类符合可编码协议,这反过来又引发了错误“找不到'可编码'的协议声明”。有什么方法可以将此快速协议用于目标 c 类?或者是否有任何其他目标 c api 提供与 Codable 相同的功能?这个想法是让 swift 和 Objective c 类的解析逻辑相同。
【问题讨论】:
-
NSCoding 是对应的 Objective-C 协议,在引入 Codable 之前也用于 Swift
-
@JoakimDanielson - 符合 NSCoding 协议,自定义类对象可以序列化/反序列化为存档/取消存档。这是否有助于将 jsonobject 解析为自定义类型,反之亦然?
-
没有。你不能。
Codable仅适用于 Swift。 Objective-C 没有对应物,因为如果有,那为什么还要引入Codable呢? -
阅读 Jordan Rose 的解释,Why You Cant Make Someone Else's Class Decodable,其中涉及所需的初始化程序和子类如何解决非最终数据结构的问题。 ObjC 没有
final,因此这些原因也适用于当前发布者的问题。
标签: objective-c swift codable