NSMutableArray使应用程序崩溃

时间:2012-08-21 11:55:06

标签: ios xcode

在我的应用程序中,我有许多可变数组,我用int i填充for循环; i = 0;我++;该应用程序工作,但现在它开始崩溃,给出了这个错误:

  

*由于未捕获的异常'NSRangeException'终止应用程序,原因:'* - [__ NSArrayM objectAtIndex:]:索引1超出边界[0 ..   0]”    * 第一次抛出调用堆栈:(0x32bb888f 0x34b5d259 0x32b019db 0xb1f07 0x372a160d 0x32b8ca33 0x32b8c699 0x32b8b26f 0x32b0e4a5 0x32b0e36d   0x32c5b439 0x350edcd5 0xa8e45 0xa8de0)终止调用throw   异常(LLDB)

问题是我不知道哪个阵列导致了这个问题,而且我有超过12个阵列。所以我不知道如何解决它。我尝试使用Zombie对象功能,但它没有告诉我哪个阵列导致了问题。

我也无法理解,因为在代码中我首先这样做:

[messagename removeAllObjects];
[messageframe removeAllObjects];
[messagetext removeAllObjects];
[MapViewArray removeAllObjects];
[DeleteButtonArray removeAllObjects];
[DeleteButtonArray removeAllObjects];
[DeleteButtonArray removeAllObjects];


MapViewArray = [[NSMutableArray alloc]init];
messagename = [[NSMutableArray alloc]init];
messageframe = [[NSMutableArray alloc]init];
messagetext = [[NSMutableArray alloc]init];
DeleteButtonArray = [[NSMutableArray alloc]init];
imageArray = [[NSMutableArray alloc]init];
messageframe = [[NSMutableArray alloc]init];

然后我只以这种方式添加对象:

 [messagename addObject: textname];

我甚至没有访问某个索引!!

2 个答案:

答案 0 :(得分:0)

您正在尝试从不存在的数组中获取索引。 “它超出界限[0,0]”。可能在你将数据插入数组的循环中,而不是在你发布的代码中。

答案 1 :(得分:0)

很好地说@Robin van Dijke,您可以转到XCode中的断点导航器面板并设置一个异常断点,当异常即将上升时,它会破坏您的程序。

在删除元素之前,还要检查数组是否为零。 即

if(messagename!= nil){

[messagename removeAllObjects];

} 其他 {

messagename = [[NSMutableArray alloc] init];

}