【问题标题】:Arc enabled Cocos2d: Schedule CrashArc 启用 Cocos2d: Schedule Crash
【发布时间】:2012-09-25 09:39:24
【问题描述】:

我最近按照本教程成功在我的项目中启用了 ARC

http://www.learn-cocos2d.com/2012/04/enabling-arc-cocos2d-project-howto-stepbystep-tutorialguide/

一切正常,直到我添加了一个调度方法,例如:

[self schedule:@selector(test:) interval:0.1];

方法:

-(void)test:(id)timer{
    NSLog(@"yes!");
}

不幸的是,它没有说“是!”,而是崩溃了:

0x1de8d83:  movl   (%eax), %edx

并显示:

【问题讨论】:

    标签: timer cocos2d-iphone automatic-ref-counting schedule


    【解决方案1】:

    我认为只要使用就可以了:

    -(void)test:(id)timer;
    

    改为使用:

    -(void)test:(ccTime)dt;
    

    还没有启用 ARC 时没有这个问题。

    【讨论】:

    • 它以前不会工作(访问计时器会崩溃)。它可能根本没有因为您没有访问计时器而崩溃,但它肯定是不正确的。使用 ARC,id 参数的内存由 ARC 管理,但由于它是浮点数而不是 id,当 ARC 尝试保留或释放它时,它会崩溃。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    相关资源
    最近更新 更多