我在使用2 NSMutableArray
个对象_entryArray
初始化名为NSString
的{{1}}时遇到问题。我收到以下错误:
由于未捕获的异常'NSRangeException'而终止应用程序,原因:' * - [__ NSArrayM objectAtIndex:]:索引1超出空数组的边界'
当我尝试初始化它而没有任何对象时,我没有错误。我该怎么办?
非常感谢
代码:
@"00:00:00"
答案 0 :(得分:4)
这两行导致数组中的对象为零:
_timeInBackup = [[NSMutableArray alloc] initWithObjects:(NSNumber *)0, nil];
_timeOutBackup = [[NSMutableArray alloc] initWithObjects:(NSNumber *)0, nil];
您没有添加数字0,而是添加指针0.这与nil
相同。换句话说,这段代码就是这样的:
_timeInBackup = [[NSMutableArray alloc] initWithObjects:nil, nil];
_timeOutBackup = [[NSMutableArray alloc] initWithObjects:nil, nil];
如果您的意图是添加数字0,请执行以下操作:
_timeInBackup = [[NSMutableArray alloc] initWithObjects:[NSNumber numberWithInt:0], nil];
_timeOutBackup = [[NSMutableArray alloc] initWithObjects:[NSNumber numberWithInt:0], nil];
更好的是,这样做:
_timeInBackup = [@[ @0 ] mutableCopy];
_timeOutBackup = [@[ @0 ] mutableCopy];
您还有其他空数组:_timeSinceLastEntryArray
和_timeInterval
。您发布的所有代码实际上都不会导致错误。您需要提供更多详细信息,以确定哪个阵列确实会导致问题。