-1

我的应用程序模型由一个 NSMutableArray 组成,其中包含一些其他 NSMutableArrays,每个 NSMutableArrays 都包含一定数量的 NSDictionaries,有没有办法在不使用核心数据的情况下深入存储主数组(我的意思是存储它及其所有内容),因为此刻我还是不知道怎么用?目前我知道如何使用 NSUserDefaults,有没有办法使用 NSUserDefaults 深度保存数组?

4

3 回答 3

1

如果数组及其所有内容(包括字典)仅包含与属性列表兼容的对象,则可以将其放入NSUserDefaults.

属性列表兼容的类是:

  • NSString
  • NSDate
  • NSData
  • NSNumber
  • NSValue
  • NSArray
  • NSDictionary
于 2012-09-24T13:19:45.660 回答
0

尝试任一 NSUserDefaults

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:rootArray forKey:@"myKey"];

...

NSArray *savedArray = [defaults objectForKey:@"myKey"];

如果您的数据很小,或者如果数据较大,则为NSCoding

// To save to disk
[NSKeyedArchiver archiveRootObject:rootArray toFile:@"filePath"];

// To load from disk
NSArray *savedArray = [NSKeyedUnarchiver unarchiveObjectWithFile:@"filePath"];

或者你可以看看 sqlite3 C 包装器?

于 2012-09-24T13:20:27.737 回答
0

To follow from Nikolai's answer - if you are putting your own custom objects into the arrays and dictionaries make sure that they can be serialized.

You can read more about it in the Archives and Serialization Programming Guide

于 2012-09-24T13:21:06.207 回答