如何在NSUserDefaults中存储NSMutableArray [英] how to store NSMutableArray in NSUserDefaults
问题描述
请告诉我如何将 NSMutableArray
存储到 NSUserDefaults
。
Please tell me how can i store NSMutableArray
into NSUserDefaults
.
我有一个名为data的数组( NSArray
)。我想在 NSMutableArray
中添加这个数组 mArray
。
I have an array called data(NSArray
).I want to add this array in NSMutableArray
called mArray
.
[mArray addObject:data];
[prefs setObject:mArray forkey:@"test"];
[prefs synchronize];
&想要在 NSUserDefaults
中存储 mArray
值。
请告诉我如何存储&检索这些价值观。
以上代码只存储 NSUserDefaults
中的附加值。
& want to store mArray
values in NSUserDefaults
.
Please tell me how can i store & retrive these values.
above code is storing only last value not appending value in NSUserDefaults
.
谢谢
推荐答案
You can't. See http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html, in particular :
NSUserDefaults
返回的值是不可变的,即使您将
可变对象设置为值也是如此。对于
的例子,如果你设置一个可变字符串
作为MyStringDefault的值,
后来使用
stringForKey:检索的字符串将是不可变的。
Values returned from NSUserDefaults are immutable, even if you set a mutable object as the value. For example, if you set a mutable string as the value for "MyStringDefault", the string you later retrieve using stringForKey: will be immutable.
相反,制作一个从NSUserDefaults检索的数组的mutableCopy,添加你的对象,然后重新设置你的新数组。
Instead, make a mutableCopy of the array you retrieve from NSUserDefaults, add your object, then set your new array back in.
这篇关于如何在NSUserDefaults中存储NSMutableArray的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!