[英]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.