0

NSString を NSMutableArray (NSString のみを保持する) に追加しようとしています。エラーは発生していませんが、配列の をクエリするとcount、値が追加されなかったことを示すゼロが返されます。これが私のコードです(XMLを取得していますが、これは間違いなく100%機能しています):

// get an array of genres for this game
NSArray *genreList = [self getAllItems:@"//genre" fileName:[NSURL URLWithString:queryURL]];
int numberOfGenres = [genreList count];
NSLog(@"This game has %u genres", numberOfGenres);

この NSLog は、XML 結果のエントリ数 (通常は 1 ~ 5) を正しく報告します。

// put the genre names from that array into the current game's object
if (numberOfGenres > 0) {
    for (int i = 0; i < numberOfGenres; i++) {
        NSString *currentGenreName = [NSString stringWithString:[[genreList objectAtIndex:i] objectForKey:@"name"]];
        [currentGame.gameGenres addObject: currentGenreName];
        NSLog(@"I added a genre to %@, called %@.", currentGame.gameName, currentGenreName);
    }
}

この NSLog は、ゲームのタイトルと、XML ツリー内のそのタイトルも正しく報告します。

// save current game to game list
NSLog(@"I'm about to save %@ to the array, with its %u genres", currentGame.gameName, [currentGame.gameGenres count]);
[_listOfGamesReturnedFromSearch addObject:currentGame];

この最後の NSLog は、ジャンルの数を常にゼロとして報告します。後で配列を照会する_listOfGamesReturnedFromSearchと、他のプロパティ (名前) は正常に保存されましたが、ジャンル数はゼロです。何らかの理由で保存されませんでした。

何か案は?

4

1 に答える 1

2

これは、アレイを割り当てて初期化しないことの典型的な症状です。そのため、アレイはそのままでnil、送信されたすべてのメッセージを無視し続けます。割り当て-初期化すると機能します。

于 2012-10-05T13:30:09.627 に答える