私はcocos2dを使用してゲームを作成しています。ここでは、ゲームを作成するときに呼び出されるメソッドは、次のとおりです。2回目のCCSceneの置き換え後にアプリケーションがクラッシュする
- (void)createGame
{
GameScene *newScene = [[GameScene alloc] initWithController:self]; //subclass of CCScene
if ([CCDirector sharedDirector].runningScene)
[[CCDirector sharedDirector] replaceScene:newScene];
else
[[CCDirector sharedDirector] pushScene:newScene];
scene = newScene;
//some controllers for some layers of my scene
box2d = [[Box2DController alloc] initWithParent:self];
menu = [[MenuController alloc] initWithParent:self];
controls = ([[ControlsController alloc] initWithParent:self]);
self.controllers = [[NSArray alloc] initWithObjects:box2d, menu, controls, nil];
//some object, contains some parameters. rizeEvent tells about some event to all controllers. In this case, it sends pointer to worldState to all of them.
worldState = [[WorldState alloc] init];
EventArgs *eventArgs1 = [[EventArgs alloc] initWithSender:self params:worldState];
[self riseEvent:@"WorldStateUpdate" withArgs:eventArgs1];
}
私は私の世界を破壊するボタンを、持っている、と新しいものを作成します。ここでは
- (void)onExitPressedWithArgs:(EventArgs *)e
{
[self destroyGame];
[self createGame];
}
は 'destroyGame' メソッドです:
- (void)destroyGame
{
[box2d release];
[menu release];
[controls release];
[scene release];
[worldState release];
box2d = nil;
menu = nil;
controls = nil;
scene = nil;
worldState = nil;
[self.controllers release];
self.controllers = nil;
}
私はアプリケーションを起動しています:
- 'createGame' は '再起動' ボタン
- を押す
- をいわゆる 'onExitPressedWithArgs'
- いわゆる 'destroyGame' と 'createGame' すべてが '再起動' ボタンを押すと細かい
- になり、作成した
- 新世界と呼ばれ、 'onExitPressedWithArgs'、 'destroyGame'、 'createGame'と呼ばれます。
- アプリケーションがクラッシュします。
常にケードのさまざまな部分でクラッシュしますが、常に「EXC_BAD_ACCESS」は例外です。
+1これに
:
2)、これを説明のためにrishiに – samfisher
応答とアドバイスをありがとう。私はこれが自分の問題ではないと思うが、私はそれをやった。問題はなくなった。なぜそれがいつもarter * second * replacementにクラッシュするのですか? – SentineL
あなたはNSZombieを使ってみましたか? – rishi