0
我想在我的GameManager单例初始化中构建一些场景。ccscene弧和autorelease
场景是通过
- (id)init
{
self = [super init];
if (self) { // 'mainScene' is an autorelease object.
mainScene = [CCScene node];
...
}
GameManger持有强引用mainScene创建:
@interface GameManager : NSObject
{
CCScene* mainScene;
}
但是,如果我尝试使用
[[CCDirector sharedDirector] pushScene:mainScene];
我拿到后推现场EXC_BAD_ACCESS
如果我创建并立即推动,那么一切正常。不应该使用默认的__strong引用来保持对象的分配?
在此先感谢您的帮助....
也不让你使用ARC时有什么区别。 [CCScene节点]和[[CCScene alloc] init]的工作原理与ARC相同(尽管低级技术细节揭示了稍微不同的内存管理例程)。确保你没有陷入推动当前正在运行的场景的陷阱,这将会崩溃。 – LearnCocos2D
我绝对没有推出一个正在运行的场景 - 并验证调用[[[[CCScene alloc] init] autorelease];崩溃和[[CCScene alloc] init]不.... – OptimisticMonkey