我有一个SKShapenode
的子类,有2个额外的属性
@property(assign)float size;
@property(assign)float weight;
但是当我用核心数据保存NSMutableArray
时,包含我的节点的某些子类,有关大小+重量的信息会丢失。
newLevel.tractorObjects = [NSKeyedArchiver archivedDataWithRootObject:arrayTractorObjects];
我该如何解决这个问题?
答案 0 :(得分:2)
由于您似乎正在使用NSCoding
对节点进行编码,因此您需要在子类中实现NSCoding
。现在SKShapeNode
正在进行所有编码,但它并不了解您的子类属性。要对属性进行编码,您需要实施encodeWithCoder
和initWithCoder
。这两个都应该调用super
的实现,以便SKShapeNode
可以编码自己,然后添加/提取自己的属性。