0

我有一个场景 1 被场景 2 取代

[[ccdirector shareddirector]replacescene:scene2]//scene2 replacement

在scene2上做了一些选择后,我再次用scene1替换了场景

[[ccdirector shareddirector]replacescene:scene1] //scene1 replacement

但是scene2的日程还在运行,我还没有真正保留scene2中的任何东西,请帮我解决这个问题!

4

1 回答 1

1

仅当您的场景未发布时才会发生这种情况。这意味着,是的,你确实以某种方式保留了它。请记住,将对象添加到 NSArray 或 NSDictionary 会保留它。

在每个场景的-(void) dealloc方法中设置断点,或添加 NSLog/CCLOG 行,以确保场景被正确释放。

我从您的代码中猜测您实际上是在持有 scene1 和 scene2 对象。你不应该那样做。相反,每次更改场景类时都创建一个新实例,如下所示:

[[CCDirector sharedDirector] replacescene:[Scene2 node]];
于 2012-03-24T12:22:33.227 回答