NSString不会将自己添加到NSMutableArray

时间:2012-10-05 13:26:19

标签: objective-c xml nsmutablearray

我正在尝试将NSString添加到NSMutableArray(它只包含NSStrings)。我没有收到任何错误,但是当我查询数组的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数组,它保存了其他属性(名称),但是类型计数为零 - 由于某种原因它没有保存它们。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这是不分配和初始化数组的典型症状 - 因此它保持nil并一直忽略发送的所有消息。 Alloc-init它,它会工作。