我正在创造一个解读文字游戏。
我已经到了可以使用以下方式保存/加载游戏的阶段:
(void)encodeWithCoder:(NSCoder *)aCoder
(instancetype)initWithCoder:(NSCoder *)aDecoder
当我第一次保存/加载游戏时没有问题。当我第二次按下主页按钮时,应用程序崩溃了我最终得到了一个我不知道如何理解的错误。
这是什么意思?
2014-01-11 18:23:12.254 GameTest[16622:70b]
因未捕获的异常而终止应用
'Attemped to add nil node', reason: 'Attemped to add nil node to parent: <SKNode> name:'(null)' position:{0, 0} accumulatedFrame:{{inf, inf}, {inf, inf}}'
我不知道代码中的错误发生在哪里。
干杯卢克
答案 0 :(得分:0)
感谢LearnCocos2D,
错误是神秘的(我的观点)。
问题在于我如何处理“bodyWithEdgeLoop”边界。
问题还与:
有关(void)encodeWithCoder:(NSCoder *)aCoder
和
(instancetype)initWithCoder:(NSCoder *)aDecoder
方法
我正在使用Ray Wenderlich的iOS游戏教程书&amp;我在“initWithCoder”方法中犯了一个错误。
我已经删除了&amp;在“encodeWithCoder”方法中替换了edge循环体,但没有在“initWithCoder”方法中创建它。
这就是解决方案。保存游戏时,必须移除边缘体循环。在“encodeWithCoder”方法中替换,但也必须在“initWithCoder”方法中创建。
最大的问题是Xcode没有指向我代码中的任何一行。我只是在“预感”中做到了这一点。
希望它有所帮助。
答案 1 :(得分:0)
我遇到了一个似乎影响某些类型iPad的类似问题。现场试图添加无子女。
添加异常处理块似乎已修复它,即使我从未看到异常打印语句。
@try {
[self addChild:node];
}
@catch (NSException *exception) {
NSLog(@"Exception adding node :%@",[exception description]);
}
@finally {
}