0

我正在尝试将 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稍后查询该数组,它会很好地保存其他属性(名称),但类型计数为零——由于某种原因它没有保存它们。

有任何想法吗?

4

1 回答 1

2

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

于 2012-10-05T13:30:09.627 回答