在属性列表中保留数据

时间:2012-06-27 10:42:03

标签: iphone objective-c ios xcode

我正在使用plist来存储和检索我最喜欢的列表。一切正常,直到我重新启动我的Iphone。最喜欢的列表消失了。 我的问题是我可以使用plist来保存数据吗? 如果可能,有人可以帮忙吗? 感谢

4 个答案:

答案 0 :(得分:2)

如何存放和重装你的plist?一般来说,它应该不是问题。只需将plist保存到应用程序的文档目录,然后转到后台(或者每当有变化时),并在开始时重新加载。

只需使用以下方法(对于NSArray或NSDictionary):

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag

不应该像其他人建议的那样使用 NSUserDefaults,因为这些仅适用于用户默认值,而不适用于用户数据。保存到文档的目录可确保正确备份数据,即使对于较大的数据集也能正常工作。

NSUserDefaults适用于您可能在设置视图中显示的内容。

答案 1 :(得分:0)

我对ios开发没有经验,但我建议您使用NSUserDefaults 我在Mac OS X应用程序上使用它,它可以完成任务。

答案 2 :(得分:0)

正如bruno建议为什么不将用户pref数据存储在NSUserDefault中。

您可以这样做:

保存:

self.userDefaults = [NSUserDefaults standardUserDefaults];
[self.userDefaults setObject:myObject forKey:@"myKey"];
[self synchronize];

加载:

self.userDefaults = [NSUserDefaults standardUserDefaults]; 
NSObject *myObject = [self.userDefaults objectForKey:@"myKey"];

答案 3 :(得分:0)

是的,您可以使用p-list来保存数据并将您的p列表复制到文档目录中... 使用以下代码:

NSError *error;

NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"your_plist_name.plist"];

这可能会对你有帮助......