[英]NSMutableArray strange crash - removeObjectAtIndex
我从我的一个应用收到崩溃,该崩溃看上去很奇怪,并显示以下日志:
*由于未捕获的异常'NSRangeException'而终止应用程序,原因:'* -[__ NSArrayM removeObjectAtIndex:]:索引4294967293超出范围[0 .. 4294967293]'
根据堆栈跟踪,这来自下面的代码:
if ([self.itemList count] > 0) {
[self.itemList removeAllObjects];
}
据我了解, removeAllObjects
始终是安全的操作,不应以这种崩溃而告终。 我在这想念什么吗? 任何正确方向的指导都将非常有帮助。
编辑 :
这是我声明的itemList
属性:
@property (nonatomic, strong) NSMutableArray *itemList;
这很可能是由于非原子性质引起的。 正如您提到的,此代码是多线程的,并且您使用的是线程安全的属性。
- 由于未捕获的异常'NSRangeException'而终止应用程序,原因:'*-[__ NSArrayM removeObjectAtIndex:]:索引4294967293超出范围[0 .. 4294967293]'
该错误仅表示必须删除的对象已被删除,因此返回的索引为“ 4294967293”。 尝试将数组设置为原子。 也尝试使用@synchronized,如此处类似问题中所述:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.