如何在NSUserDefaults中存储NSMutableArray [英] how to store NSMutableArray in NSUserDefaults

查看:74
本文介绍了如何在NSUserDefaults中存储NSMutableArray的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请告诉我如何将 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.

谢谢

推荐答案

你做不到。请参阅 http:// developer .apple.com / library / mac / #documentation/Cocoa / Reference / Foundation / Classes / NSUserDefaults_Class / Reference / Reference.html ,特别是:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆