"mutating sent to immutable object" 在数组中的字典中
"mutating sent to immutable object" In dictionary inside array
我的 NSMutableArray 中有一个名为 myMutableArray
:
的值
(
{
"name_user" = xxxxxx;
"user_key" = "xxxxxxx";
}
相信在这个数组中有一个字典(如上所示),假设我想在这个数组中添加另一个字典以保持类似的结果:
(
{
"name_user" = xxxxxx;
"user_key" = "xxxxxxx";
},
{
"name_user" = aaaaaa;
"user_key" = "stack overflow";
}
为此,我正在测试以下代码:
[myMutableArray addObject:@[@{@"name_user":"stack overflow",@"user_key":@"aaaaaa"}]];
此代码的问题是我收到以下错误消息:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray
insertObject:atIndex:]: mutating method sent to immutable object'
我该如何解决这个问题?
仅仅因为你有一个可变类型的属性并不意味着它指向的实例是可变的,你是在告诉编译器它将在运行时可变,但如果你以不同的方式编写代码则不能保证。
因此,您应该检查如何创建数组以使其可变,或者在尝试改变它之前创建一个可变副本。
我的 NSMutableArray 中有一个名为 myMutableArray
:
(
{
"name_user" = xxxxxx;
"user_key" = "xxxxxxx";
}
相信在这个数组中有一个字典(如上所示),假设我想在这个数组中添加另一个字典以保持类似的结果:
(
{
"name_user" = xxxxxx;
"user_key" = "xxxxxxx";
},
{
"name_user" = aaaaaa;
"user_key" = "stack overflow";
}
为此,我正在测试以下代码:
[myMutableArray addObject:@[@{@"name_user":"stack overflow",@"user_key":@"aaaaaa"}]];
此代码的问题是我收到以下错误消息:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'
我该如何解决这个问题?
仅仅因为你有一个可变类型的属性并不意味着它指向的实例是可变的,你是在告诉编译器它将在运行时可变,但如果你以不同的方式编写代码则不能保证。
因此,您应该检查如何创建数组以使其可变,或者在尝试改变它之前创建一个可变副本。