将NSMutableArray保存为plist?

Dav*_*d K 4 iphone plist nsmutablearray

可能重复:
iOS:将两个NSMutableArray存储在.plist文件中

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

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

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

Emi*_*aez 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];
};
Run Code Online (Sandbox Code Playgroud)

或者您可以使用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];
};
Run Code Online (Sandbox Code Playgroud)