我无法将addObject添加到'easyQArray'(NSMutableArray)中。当我在本地定义数组时它确实有效但当我将声明移动到.h文件中时它不再起作用了。
当我尝试访问不存在的数组中的索引时,应用程序崩溃:
// Create question arrays
if (easyPlayers > 0) {
for (int XX = 0; XX < easyQuestions; XX++) {
[easyQArray addObject: [myArray objectAtIndex: easyQStartPos]];
NSLog(@"myArray: %@", [myArray objectAtIndex: easyQStartPos]);
NSLog(@"easyQArray: %@", easyQArray);
easyQStartPos = easyQStartPos + 1;
}
}
输出:
2010-12-28 15:52:57.636 XX_v2 [11582:207] myArray:205
2010-12-28 15:52:57.636 XX_v2 [11582:207] easyQArray :( null)
2010-12-28 15:52:57.636 XX_v2 [11582:207] myArray:71
2010-12-28 15:52:57.637 XX_v2 [11582:207] easyQArray :( null)
2010-12-28 15:52:57.637 XX_v2 [11582:207] myArray:94
2010-12-28 15:52:57.638 XX_v2 [11582:207] easyQArray :( null)
2010-12-28 15:52:57.638 XX_v2 [11582:207] myArray:133
2010-12-28 15:52:57.638 XX_v2 [11582:207] easyQArray :( null)
2010-12-28 15:52:57.639 XX_v2 [11582:207] myArray:142
2010-12-28 15:52:57.640 XX_v2 [11582:207] easyQArray :( null)
答案 0 :(得分:12)
似乎你甚至没有初始化你的数组。从您的描述中听起来就像您将其声明为属性所以在类init方法中调用alloc / init应该可以解决您的问题。
easyQArray = [[NSMutableArray alloc] init];
答案 1 :(得分:0)
easyQArray已定义,但它在哪里分配? (我的猜测是,它不是因为你的日志显示它是零)
可能缺失的一行:
easyQArray = [[NSMutableArray alloc] init];
答案 2 :(得分:0)
即使你移动它也应该工作.h。
确保初始化easyQArray
。并确保将其初始化为NSMutableArray
应在addObject
[easyQArray addObject: [myArray objectAtIndex: easyQStartPos]];
之前进行初始化