popScene之后计划的计时器崩溃

时间:2011-08-20 23:53:35

标签: iphone cocos2d-iphone

在执行[[CCDirector sharedDirector] popScene]后,我似乎正在崩溃。我不确定为什么。任何线索都会有所帮助,谢谢!

崩溃日志:

#0  0x99e5ef84 in objc_msgSend ()
#1  0x302d543a in __NSFastEnumerationMutationHandler ()
#2  0x00046b46 in -[CCScheduler tick:] (self=0x1919ac0, _cmd=0x7b682, dt=0.0333320014) at /Users/Sup3rpanda/Dev/My Projects/Puzzle/libs/cocos2d/CCScheduler.m:211
#3  0x0001fb52 in -[CCDirector mainLoop] (self=0xf10a30, _cmd=0x76272) at /Users/Sup3rpanda/Dev/My Projects/Puzzle/libs/cocos2d/CCDirector.m:208
#4  0x305355cd in __NSFireTimer ()
#5  0x302454a0 in CFRunLoopRunSpecific ()
#6  0x30244628 in CFRunLoopRunInMode ()
#7  0x32044c31 in GSEventRunModal ()
#8  0x32044cf6 in GSEventRun ()
#9  0x309021ee in UIApplicationMain ()
#10 0x00002e94 in main (argc=1, argv=0xbfffef60) at /Users/Sup3rpanda/Dev/My Projects/Puzzle/main.m:13

预定计时器:

tGridTimer = [[CCTimer alloc] initWithTarget: self selector: @selector(gridSlideUpForced2:) interval: sGridSpeed];
[[CCScheduler sharedScheduler] scheduleTimer:tGridTimer];

看起来与崩溃有关的CoCos 2d代码:

-(void) tick: (ccTime) dt
{
    if( timeScale_ != 1.0f )
        dt *= timeScale_;

    for( id k in methodsToRemove )
        [scheduledMethods removeObject:k];

    [methodsToRemove removeAllObjects];

    for( id k in methodsToAdd )
        [scheduledMethods addObject:k];
    [methodsToAdd removeAllObjects];

    for( CCTimer *t in scheduledMethods )
        impMethod(t, fireSelector, dt);
        [[CCScheduler sharedScheduler] scheduleTimer:tGridTimer];

1 个答案:

答案 0 :(得分:0)

您是否在场景课程中onExitdealloc清理了计时器?可能是现场仍然认为某些调度程序仍在运行