gpt4 book ai didi

ios - 当对象是可变的时发送到不可变对象(immutable对象)的变异方法

转载 作者:行者123 更新时间:2023-11-28 20:22:44 25 4
gpt4 key购买 nike

我已将我的可变对象定义为

NSMutableArray *scribbles;

然后在 viewDidLoad 中初始化它

scribbles = [[NSMutableArray alloc] init];

获取我的第一个 JSON 页面后,我将数据添加到其中

scribbles = JSON[@"scribbles"];

然后我加载第二页并尝试将更多数据添加到我的数组中

NSMutableArray *mutableJson = [JSON[@"scribbles"] mutableCopy];
[scribbles addObjectsFromArray:mutableJson];

但应用程序崩溃并给我一个 mutating method sent to immutable object 错误。

最佳答案

你应该这样做:

scribbles = [JSON[@"scribbles"] mutableCopy];

您不需要制作第二页的可变副本,因此只需执行以下操作:

[scribbles addObjectsFromArray:JSON[@"scribbles"]];

解释:

scribbles = [[NSMutableArray alloc] init]; // mutable, OK
scribbles = JSON[@"scribbles"]; // immutable, you have to make mutable copy
[scribbles addObjectsFromArray:mutableJson]; // scribbles was immutable, the parameter doesn't need to be mutable

关于ios - 当对象是可变的时发送到不可变对象(immutable对象)的变异方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15335156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com