我正在尝试从保存数据中的键创建一个 NSArray
并使其可变。这是我到目前为止所拥有的:
NSMutableArray *availableThemes = [[[saveData valueForKey:@"availableThemes"] array] mutableCopy];
如果我是正确的,发送 array
使 availableThemes
返回的这个对象成为一个包含对象内容的数组,然后是 mutableCopy
使这个数组成为 NSMutableArray
。可悲的是,很明显,我不是。我收到此错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray array]: unrecognized selector sent to instance 0x786c7430'
在这里,我认为发送 array
会将此数据转换为 NSArray
。相反,它会导致编译器错误。我知道我做了一些愚蠢的错误。问题是,我做了什么?
最佳答案
您正在 NSArray
的实例上调用类方法 array
。
NSMutableArray *availableThemes = [[[saveData valueForKey:@"availableThemes"] array] mutableCopy];
从您的崩溃日志中可以清楚地看出 availableThemes
键返回一个 NSArray
对象,因此将您的代码更改为:
NSMutableArray *availableThemes = [[saveData valueForKey:@"availableThemes"] mutableCopy];
关于ios - 从 plist 制作一个可变数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30691421/