目标C-无法更改NSMutableArray中的值

依凡达

我可以从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];

但这也不起作用。

rmaddy

你想要的NSJSONReadingMutableContainers,不是NSJSONReadingMutableLeaves

使用NSJSONReadingMutableLeaves可为您提供容器内的可变字符串和其他可变对象。不是您这里需要的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章