[self performSelector:@selector(fun:) withObject:obj afterDelay:2.0];方法是可以在未执行前终止的


在一个函数里面执行了延时间执行某个方法的时候

[self performSelector:@selector(fun:) withObject:obj afterDelay:2.0];


所以最后我的解决办法就是取消那些还没有来得及执行的延时函数,代码很简单:

[NSObject cancelPreviousPerformRequestsWithTarget:self]

当然你也可以一个一个得这样用:

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(method1:) object:nil]

加上了这个以后,切换场景也就很顺利地执行了dealloc方法,至此问题解决!

你可能感兴趣的:(object-c,game,cocos2d,iOS)