从plist创建一个可变数组

时间:2015-06-07 08:13:23

标签: ios objective-c arrays

我尝试从保存数据中的密钥中创建NSArray并使其变为可变。这就是我到目前为止所拥有的:

NSMutableArray *availableThemes = [[[saveData valueForKey:@"availableThemes"] array] mutableCopy];

如果我没有问题,发送array会使availableThemes这个对象返回一个包含对象内容的数组,然后mutableCopy使这个数组成为{{1} }}。可悲的是,显然,我不是。我收到这个错误:

NSMutableArray

我想,发送*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray array]: unrecognized selector sent to instance 0x786c7430' 会将此数据转换为array。相反,它会导致编译器错误。我知道我做了一些愚蠢的错事。问题是,我做了什么?

1 个答案:

答案 0 :(得分:2)

您正在array

的实例上调用类方法NSArray
NSMutableArray *availableThemes = [[[saveData valueForKey:@"availableThemes"] array] mutableCopy];

从崩溃日志中可以清楚地看到availableThemes键返回NSArray个对象,因此请将代码更改为:

NSMutableArray *availableThemes = [[saveData valueForKey:@"availableThemes"] mutableCopy];