簡體   English   中英

為什么刪除AllObjects,分配nil然后初始化NSMutableArray會使iOS App崩潰?

[英]Why RemovingAllObjects, Assigning nil and then initializing NSMutableArray crashes iOS App?

我必須在NSMutableArray中分配要從JSON響應的國家,州和城市,該模塊在模式類中初始化。

我將必須刪除所有對象才能設置新的州和城市,這樣做會導致錯誤崩潰

釋放對象的校驗和不正確-釋放對象后可能已修改了該對象。 ***在malloc_error_break中設置斷點以進行調試

然后在回答https://stackoverflow.com/a/12050676/5568169知道將nil分配給mutableArray將起作用,並且它起作用了,但是現在用戶可以再次選擇另一個國家,所以現在分配內存[myMutableArray alloc] init]] ,給了我與開始時同樣的錯誤。

    -(void)fetchStates:(NSString*)idString {

        [registrationModalContactVC.allStateArray removeAllObjects];
        registrationModalContactVC.allStateArray = nil;
        [registrationModalContactVC.allStateDict removeAllObjects];
        registrationModalContactVC.allStateDict = nil;
        registrationModalContactVC.allStateArray = [NSMutableArray new];
        registrationModalContactVC.allStateDict = [NSMutableDictionary new];
}

請幫助

您不應該這樣:

[myMutableArray alloc] init]

您的意思是:

myMutableArray = [[NSMutableArray alloc] init];

我認為您的mutablearray是Pickview的數據源,當您刪除所有對象時,Pickview的狀態如何。

刪除下面的代碼是可行的,但可能會再次出現相同的錯誤

registrationModalContactVC.allStateArray = nil;
registrationModalContactVC.allStateDict = nil;
registrationModalContactVC.allStateArray = [NSMutableArray new];
registrationModalContactVC.allStateDict = [NSMutableDictionary new];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM