标题说明了一切。似乎应该(以某种方式)为PyObjC对象实现python-side pickle,其Objective-C类实现NSCoding
而无需从头开始重新实现所有内容。也就是说,虽然价值语义成员可能很简单,但参考对象图和条件编码可能会很棘手。您如何让双方在对象图部件上“协作”?
答案 0 :(得分:1)
PyObjC支持将Python对象写入(键控)存档(即,任何可以被pickle的对象实现NSCoding)。
这可能是序列化Python和Objective-C对象的任意图形的最简单方法。
正如我在评论中写到的另一个答案时,我试图找到一种方法来实现对任何实现NSCoding的对象的pickle支持,因为NSArchiver和pickle如何遍历对象图(IIRC主要是在恢复时)记录)。
答案 1 :(得分:0)
难道不是很简单吗?
在腌制时,使用encodeWithCoder
或其他东西在对象上调用NSArchiver
。有泡菜存储该字符串。
在unpickling上,使用NSUnarchiver
从pickle字符串创建NSObject
。