在我的应用程序中,我有许多可变数组,我用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];
我甚至没有访问某个索引!!
答案 0 :(得分:0)
您正在尝试从不存在的数组中获取索引。 “它超出界限[0,0]”。可能在你将数据插入数组的循环中,而不是在你发布的代码中。
答案 1 :(得分:0)
在删除元素之前,还要检查数组是否为零。 即
if(messagename!= nil){
[messagename removeAllObjects];
} 其他 {
messagename = [[NSMutableArray alloc] init];
}