다음과 같은 비동기 UrlConnections 코드가 있습니다. 요청이 실패하면 NSUserDefaults
에 저장된 NSMutableArray
에 NSString
을 추가합니다. 처음 올바르게 추가,하지만 두 번째 번 오류가 발생합니다 :비동기 UrlConnections와 함께 NSUserDefaults를 사용하여 예기치 않은 동작이 발생했습니다.
'NSInternalInconsistencyException', reason: '-[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object
코드는입니다 :
[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 * [email protected]"something";
[unprocessedSubscription addObject:subscriptionToAdd];
[[NSUserDefaults standardUserDefaults]setObject:unprocessedSubscription forKey:@"unprocessedSubscription"];
[[NSUserDefaults standardUserDefaults]synchronize];
}
}];
에 왜 내려 투표? 나는이 웹 사이트를 처음 사용하며 여기에 질문을 게시 할 때 이유를 알려 주어 질문을 향상시킬 수 있습니다. – user2412870