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