我的应用程序总是弹出'变异方法发送到不可变对象' 我的字典和数组已经宣布是一个可变的,但似乎没有帮助 我试过了replaceObjectAtIndex函数,它也没有用。
NSString* plistpath = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
NSMutableDictionary* dictionary = [NSMutableDictionary dictionaryWithContentsOfFile:plistpath];
NSMutableArray* Array1 = [dictionary objectForKey:@"Array1"];
[Array1 removeObjectAtIndex:num];
[Array1 insertObject:@"1" atIndex:num];
return Array1;
感谢
答案 0 :(得分:1)
尝试:
NSArray *array = [dictionary objectForKey:@"Array1"]; // Immutable
NSMutableArray * Array1 = [NSMutableArray arrayWithArray:array]; // Mutable
// ...
或者朱利安指出:
NSArray *array = [dictionary objectForKey:@"Array1"]; // Immutable
NSMutableArray * Array1 = [array mutableCopy]; // Mutable
答案 1 :(得分:0)
如果右侧没有返回NSMutableArray(而不是NSArray),则尝试改变一个可变对象。
NSMutableArray * Array1 = [dictionary objectForKey:@“Array1”]; // NSArray