Skip to main content
 首页 » 编程设计

python之PyObjC:如何使用 NSCoding 来实现 python pickling

2025年05月04日9lexus

标题说明了一切。似乎应该可以(以某种方式)为其 Objective-C 类实现 NSCoding 的 PyObjC 对象实现 python 端 pickle ,而无需从头开始重新实现所有内容。也就是说,虽然值语义成员可能很简单,但引用对象图和条件编码可能很棘手。您如何让双方在对象图部分上“协作”?

请您参考如下方法:

PyObjC 确实支持将 Python 对象写入(键控)存档(也就是说,任何可以 pickle 的对象都实现了 NSCoding)。

这可能是序列化 Python 和 Objective-C 对象的任意图形的最简单方法。

正如我在另一个答案的评论中所写的那样,由于 NSArchiver 和 pickle 遍历对象图的方式不兼容(IIRC 主要是在恢复归档)。