我可以从API检索所需的数据,但是之后我无法更改NSMutableArray的值。这是我从API获得的数据:
{
favorites = (
{
id = 766;
imageUrl = "766.jpg";
name = "Ground Beef 93% Lean 1LB PKG";
price = "5.99";
qty = 5;
sale = "<null>";
switch = 1;
},
{
id = 3270;
imageUrl = "3270.jpg";
name = "Arnold Premium Italian Bread 20oz PKG";
price = "5.39";
qty = 5;
sale = "<null>";
switch = 1;
},...
);
success = true;
}
我在界面部分声明收藏夹属性:
@property (nonatomic, retain) NSMutableArray *favorites;
我将数据存储在NSMutableArray中,如下所示:
NSError *myError = nil;
NSMutableArray *response = [[NSJSONSerialization JSONObjectWithData:self.responseData options:NSJSONReadingMutableLeaves error:&myError] mutableCopy];
然后,将喜欢的产品存储在另一个NSMutableArray对象中:
NSString *success = [response valueForKey:@"success"];
if([success isEqualToString:@"true"]) {
self.favorites = [response valueForKey:@"favorites"];
}
有了这些数据,我可以在表格中显示所有图像,价格等。问题是当我想更新self.favorites可变数组中的值时:
[self.favorites[indexPath.row] setObject:@"0" forKey:@"switch"];
我收到此错误:-[__ NSCFDictionary setObject:forKey:]:发送给不可变对象的变异方法。将数组分配给收藏夹时,我什至尝试添加mutableCopy:
self.favorites = [[response valueForKey:@"favorites"] mutableCopy];
但这也不起作用。
你想要的NSJSONReadingMutableContainers
,不是NSJSONReadingMutableLeaves
。
使用NSJSONReadingMutableLeaves
可为您提供容器内的可变字符串和其他可变对象。不是您这里需要的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句