2014-03-05 50 views
0

我收到一個錯誤,當我嘗試我的NSMutableArray保存到NSUserDefaults的,我已經讀夠明白,因爲我的數組是這樣的:其他方法來節省一個NSMutableArray在Xcode

CustomClass *customObject; 
NSMutableArray *mutArray = [[NSMutableArray alloc]initWithObjects:customObject,nil]; 

因爲mutArray有一個非屬性列表對象(customObject)既不能保存到NSUserDefaults也不能保存在.plist文件中,所以我需要另一種方法來保存它。

+0

可能的重複[最好的方法來保存爲nsuserdefaults自定義類?](http://stackoverflow.com/questions/3000220/best-way-to-save-to-nsuserdefaults-for-custom-class) – user1459524

回答

2

使CustomClass執行<NSCoding>協議,然後將實例存檔到數據。現在您可以將數據添加到數組/ plist。或者將其保存到磁盤。

0

當保存一個可變數組(或字典)時,它的'可變性'不應該混淆你。你會保存它,因爲你會保存它的不可變的兄弟姐妹。

爲了在加載它時再次變爲可變,您應該加載它並在加載的對象上調用mutableCopy。我知道這不是你現在的問題,但我有一種感覺,它很快就會來臨。

要成功保存一個數組或字典,所有對象(它們的類......)容器必須符合<NSCoding>協議。更多關於這個here on SO