2015-06-07 32 views
0

我試圖在保存數據時使用NSArray來保存數據並使其變爲可變。這是我到目前爲止有:從plist製作可變數組

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。相反,它會導致編譯器錯誤。我知道我做了一件愚蠢的錯事。問題是,我做了什麼?

回答

2

您正在調用NSArray實例上的類方法array

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

從你的崩潰日誌很顯然的是,availableThemes鍵返回一個NSArray對象,所以你的代碼更改爲:

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

此代碼的工作!我認爲'valueForKey'返回了'id',我認爲這意味着'未指定的對象類型'或'NSObject'。 – DDPWNAGE

+1

@DDPWNAGE:是的,它返回一個id對象(它可以是任何東西,在你的情況下它是一個'NSArray') –

+0

謝謝你的澄清! :d – DDPWNAGE