Ios 当我从用户默认设置中获取NSMUTABLEARRY并尝试用NSMUTABLEARRY替换该对象时,我收到了此错误

Ios 当我从用户默认设置中获取NSMUTABLEARRY并尝试用NSMUTABLEARRY替换该对象时,我收到了此错误,ios,swift,swift3,nsmutablearray,nsuserdefaults,Ios,Swift,Swift3,Nsmutablearray,Nsuserdefaults,无法将类型为“\uu NSArrayI”(0x11105e3f8)的值强制转换为“NSMutableArray”(0x11105d548) 在NSUserDefaults中保存NSArray: [[NSUserDefaults standardUserDefaults] setObject:yourArray forKey:@"Key"]; 要获取作为NSMutableArray的值,请执行以下操作: NSMutableArray *array = [NSMutableArray arrayW

无法将类型为“\uu NSArrayI”(0x11105e3f8)的值强制转换为“NSMutableArray”(0x11105d548)


在NSUserDefaults中保存NSArray:

[[NSUserDefaults standardUserDefaults] setObject:yourArray forKey:@"Key"];
要获取作为NSMutableArray的值,请执行以下操作:

NSMutableArray *array = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"Key"]];

请在替换数组对象时使用mutableCopy

[[_NSCFArray mutableCopy] replaceObjectAtIndex:withObject:]:

添加您的代码,因为我认为您正在从
UserDefaults
获取发送到immutable对象的
NSArray
mutating方法。这解释了一切。只需花一分钟时间,在objC中学习可变和不可变。然后检查您正在使用的用户默认方法的文档。所有内容都将被清除:)@muhammadzohaibehansan您的意思是斯威夫特,不是客观的-C.@rmaddy抱歉,我没有注意到标签。看到了问题的标题,还记得我以前处理E默认值的日子。可能会情绪化:)@Avadh不要在Swift中使用
NS[Mutable]数组。使用Swift数组。问题标记为Swift。答案应该是快速的,而不是客观的。
[[_NSCFArray mutableCopy] replaceObjectAtIndex:withObject:]: