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