繁体   English   中英

NSMutableArray奇怪的崩溃-removeObjectAtIndex

[英]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,如此处类似问题中所述:

NSMutableArray removeAllObjects超出范围异常

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM