PyObjC:如何使用NSCoding实现python酸洗?

时间:2014-02-12 14:12:44

标签: python pickle nscoding pyobjc

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

2 个答案:

答案 0 :(得分:1)

PyObjC支持将Python对象写入(键控)存档(即,任何可以被pickle的对象实现NSCoding)。

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

正如我在评论中写到的另一个答案时,我试图找到一种方法来实现对任何实现NSCoding的对象的pickle支持,因为NSArchiver和pickle如何遍历对象图(IIRC主要是在恢复时)记录)。

答案 1 :(得分:0)

难道不是很简单吗?

在腌制时,使用encodeWithCoder或其他东西在对象上调用NSArchiver。有泡菜存储该字符串。

在unpickling上,使用NSUnarchiver从pickle字符串创建NSObject