我有以下用于异步 UrlConnections 的代码。如果请求失败,我将 a 添加 NSString
到NSMutableArray
保存在NSUserDefaults
. 第一次正确添加,但第二次抛出错误:
'NSInternalInconsistencyException',原因:'-[__NSCFArray insertObject:atIndex:]:发送到不可变对象的变异方法
代码是:
[NSURLConnection sendAsynchronousRequest:theRequest queue:mainQueue completionHandler:^(NSURLResponse *response, NSData *responseData, NSError *error) {
NSHTTPURLResponse *urlResponse = (NSHTTPURLResponse *)response;
if (!error) {
//something
}
else {
NSMutableArray *unprocessedSubscription=[[NSUserDefaults standardUserDefaults]objectForKey:@"unprocessedSubscription"];
if(unprocessedSubscription==nil)
unprocessedSubscription=[[NSMutableArray alloc]init];
NSString * subscriptionToAdd=@"something";
[unprocessedSubscription addObject:subscriptionToAdd];
[[NSUserDefaults standardUserDefaults]setObject:unprocessedSubscription forKey:@"unprocessedSubscription"];
[[NSUserDefaults standardUserDefaults]synchronize];
}
}];