我正在编码我的对象并将其保存到文件中,如下所示:
[NSKeyedArchiver archiveRootObject:self.parent toFile:@"gameScene.plist"];
解码如下:
scene = [[NSKeyedUnarchiver unarchiveObjectWithFile:@"gameScene.plist"] retain];
在模拟器中,上面的解码代码正确地调用了我的类的initWithCoder
方法。但是当我在设备中运行相同的时候,会返回'initWithCoder is not called nor the
init`方法和'nil'对象。
有人可以解释这里有什么不对吗?
编辑:出于测试目的,我在init
和initWithCoder
中都提供了相同的语句集,而不是解码initWithCoder
中的子对象并注释掉我encodeWithCoder
中的所有编码。
答案 0 :(得分:2)
也许是因为你无法写入iOS设备上的根目录?我认为@"gameScene.plist"
的路径实际上意味着/gameScene.plist
,它在iOS设备上不可写,但在OS X上是允许的。-archiveRootObject:toFile:
方法可能正在返回{{1}这里,表示文件未成功创建。
你可能想要做类似的事情:
NO