2011-08-03 4 views
0

更新機能で自分のレイヤーをリリースする必要があります。私はfunction finishgameを呼び出します。不正なアクセスでCocos2D CClayerを削除する

-(void)finishGame{ 
    [[CCDirector sharedDirector] pause]; 
    [layerRoot removeFromParentAndCleanup:YES]; 
    [layerRoot autorelease]; 
    layerRoot=nil; 
} 

しかし、その後、私は悪いアクセス通知

// updates with priority == 0 
    DL_FOREACH_SAFE(updates0, entry, tmp) { 
     if(! entry->paused) 
      entry->impMethod(entry->target, updateSelector, dt); //<<< In this string. 
    } 

またはリターン0のいずれかを得ました。 0_oこれは非常に奇妙です。プログラムは終了できないので。

どうしますか?

ありがとうございます。

答えて

0

[obj removeFromParentAndCleanup:YES]問題のオブジェクトを解放します。 NOを指定しないかぎり、そのメソッドを呼び出した後はオブジェクト上で何も呼び出さないでください。それでも、これをnilに設定することはできますが、これはObjective-Cコーディングの習慣にすぎません。

また、CCNodeを適切にサブクラス化した場合は、とにかく自動解放されます。

関連する問題