0

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

4

4 回答 4

2

您如何存储和重新加载您的 plist?一般来说,这应该不是问题。只需在进入后台(或每当发生变化时)将 plist 保存到应用程序的文档目录中并在启动时重新加载。

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

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

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

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

于 2012-06-27T11:11:15.540 回答
0

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

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"];

这可能会帮助你...

于 2012-06-27T11:45:58.683 回答
0

我没有 ios 开发经验,但我建议您使用NSUserDefaults
我在 Mac OS X 应用程序上使用它,它完成了这项工作。

于 2012-06-27T10:52:07.120 回答
0

正如 bruno 建议的那样,为什么不将用户偏好数据存储在 NSUserDefault 中。

你可以这样做:

保存:

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

装载:

self.userDefaults = [NSUserDefaults standardUserDefaults]; 
NSObject *myObject = [self.userDefaults objectForKey:@"myKey"];
于 2012-06-27T10:58:44.967 回答