将NSMutableArray保存为plist?

时间:2011-07-07 08:17:52

标签: iphone nsmutablearray plist

  

可能重复:
  iOS: store two NSMutableArray in a .plist file

在我正在开发的应用程序中,我有一堆“注册”对象,其中包含一些字符串,日期和整数。 所有这些对象在创建时都存储在NSMutableArray中,我现在想要以某种方式保存此数组,以便当用户关闭应用程序等时,可以在应用程序再次打开时存储和恢复内容。 / p>

我已经读到plist可能是最好的方法,但我似乎找不到任何示例,帖子等显示如何做到这一点?

基本上:如何在应用关闭时将我的NSMutableArray保存到plist文件,以及如何再次恢复它?

1 个答案:

答案 0 :(得分:12)

NSMutableArray有一个执行此操作的方法,如果您确切知道将其保存到的位置:

//Writing to file
if(![array writeToFile:path atomically:NO]) {
    NSLog(@"Array wasn't saved properly");
};

//Reading from File
NSArray *array;
array = [NSArray arrayWithContentsOfFile:path];
if(!array) {
    array = [[NSMutableArray alloc] init];
} else {
    array = [[NSMutableArray alloc] initWithArray:array];
};

或者您可以使用NSUserDefaults:

//Saving it
[[NSUserDefaults standardUserDefaults] setObject:array forKey:@"My Key"];

//Loading it
NSArray *array;
array = [[NSUserDefaults standardUserDefaults] objectForKey:@"My Key"];
if(!array) {
    array = [[NSMutableArray alloc] init];
} else {
    array = [[NSMutableArray alloc] initWithArray:array];
};