1

我正在创建一个解读文字游戏。

我已经到了可以使用以下方式保存/加载游戏的阶段:

  • (void)encodeWithCoder:(NSCoder *)aCoder

  • (instancetype)initWithCoder:(NSCoder *)aDecoder

当我第一次保存/加载游戏时没有问题。当我第二次按下主页按钮时,应用程序崩溃了,我最终遇到了一个我不知道如何理解的错误。

这是什么意思?

2014-01-11 18:23:12.254GameTest[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}}'

我不知道我的代码中出现错误的位置。

干杯卢克

4

2 回答 2

0

感谢LearnCocos2D,

该错误的详细信息是神秘的(我的观点)。

问题在于我如何处理“bodyWithEdgeLoop”边界。

问题还与:

(void)encodeWithCoder:(NSCoder *)aCoder

(instancetype)initWithCoder:(NSCoder *)aDecoder

方法。

我正在使用 Ray Wenderlich 的 iOS Games by Tutorials 书,我在“initWithCoder”方法中犯了一个错误。

我在“encodeWithCoder”方法中删除并替换了边缘循环体,但没有在“initWithCoder”方法中创建它。

这就是解决方案。保存游戏时,必须在“encodeWithCoder”方法中删除和替换边缘主体循环,但也必须在“initWithCoder”方法中创建。

最大的问题是 Xcode 没有指向我代码中的任何行。我只是在“预感”上这样做的。

希望能帮助到你。

于 2014-01-12T08:08:18.110 回答
0

我遇到了一个类似的问题,似乎会​​影响某些类型的 iPad。场景试图添加 nil child。

添加异常处理块似乎已修复它,即使我从未看到异常打印语句。

    @try {
        [self addChild:node];
    }
    @catch (NSException *exception) {
        NSLog(@"Exception adding node :%@",[exception description]);
    }
    @finally {

    }
于 2014-03-31T17:31:31.157 回答