我有像下面的代码。我从Web服务器检索JSON。setValue forKey在NSMutableDictionary崩溃
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
for (NSMutableDictionary * dataDict in JSON) {
if ([dataDict objectForKey:@"userPicture"])
{
objectForKey:@"userPicture"]);
NSURL *url = [NSURL URLWithString:[dataDict objectForKey:@"userPicture"]];
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];
[dataDict setValue:@"userPicture"
forKey:@"userPicture"];
}
[messageList addObject: dataDict];
}
[self processComplete];
}
failure:^(NSURLRequest *request , NSURLResponse *response , NSError *error , id JSON)
{
NSLog(@"Failed: %@", error);
}];
然而,它与下面的错误崩溃:
* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'
现在,我不明白的是,我想在dataDict,这是实例化NSMutableDictionary
setValue:forKey
,所以我应该是能够设定值。
我是菜鸟程序员,所以请与我裸:)提前
感谢, 菲舍尔
记得发布'dataDict'。 – jrtc27 2012-04-12 12:19:11
@ jrtc27是。我只是想强调一下可变部分(如果这个人正在使用ARC,现在也不会这么做)。 – Alladinian 2012-04-12 12:20:50
他可能会使用ARC。我经常忘记它,因为我的项目都没有使用它。 – jrtc27 2012-04-12 12:52:08