[[CCDirector sharedDirector] popScene]을 수행 한 직후 충돌이 발생하는 것 같습니다. 나는 이유를 정말로 모른다. 모든 단서가 도움이 될 것입니다. 감사합니다!popScene 후 예약 된 타이머 크래시
Crashlog :
#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];
충돌과 관련이있을 것으로 보인다 코코스 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];
또한 Cocos2d 포럼의 질문이 있습니다. http://www.cocos2d-iphone.org/forum/topic/20015?replies=1#post -111725 – Sup3rpanda
popScene 전에 타이머 호출을 취소 했습니까? –
나는 그것을 쓸모 없게하려고 노력했다. popScene을 replaceScene으로 바꿨지 만 더 이상 추락하지 않습니다 ... 어떤 단서가 필요한가요? – Sup3rpanda