簡體   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