答えのない質問がたくさん寄せられています...誰かが私を助けてくれることを願っています.
そのため、アプリでシングルトンを作成し、シーンをリロードしましたが、敵のパスのデータにアクセスしようとすると、このメッセージが表示されます。
シングルトンのコードは次のとおりです
初期で:
NSString *resourcePath = @"EnemyPaths";
NSString *levelDefsFile = [[NSBundle mainBundle] pathForResource:resourcePath ofType:@"plist"];
_enemyPaths = [[NSDictionary alloc] initWithContentsOfFile:levelDefsFile];
シーンをリロードするときに、シングルトンでこの関数を呼び出して古いデータを解放します
-(void) resetGameData
{
[enemy1 release];
[enemy2 release];
[enemy3 release];
[enemy4 release];
[enemy5 release];
[enemy6 release];
[enemy7 release];
[enemy8 release];
[enemy9 release];
[enemy10 release];
[self setupEnemyPaths];
}
-(void) setupEnemyPaths
{
NSString *getLevel = [NSString stringWithFormat:@"Level%d", CURRENT_LEVEL];
NSAssert(_enemyPaths != nil, @"Couldn't open EnemyPaths file");
_level = (NSDictionary *) [_enemyPaths objectForKey:getLevel];
NSAssert(_level != nil, @"Couldn't find Level entry");
...
}
エラーが発生します
_level = (NSDictionary *) [_enemyPaths objectForKey:getLevel];
しかし、理由はわかりません- _enemyPaths が割り当てられていて、解放したことがありません..または何か不足していますか? 助けてください!