大plist问题

时间:2011-08-18 09:14:13

标签: iphone objective-c cocoa-touch

我有一个非常大的属性列表文件(大约2 MB大),我需要在我的应用程序中使用它的数据。但是,由于其大小,将所有数据存储在某种nsdictionary中是不正常的。我的意思是这样的:

NSString *path = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"plist"];
someDictionary = [[NSDictionary alloc] initWithContentsOfFile:path];

您建议从此plist获取数据或使用而不是plist文件。

1 个答案:

答案 0 :(得分:2)

在您分析应用之前,我不会对此进行优化。使用2MB的内存听起来很多,但有些游戏只为声音和图像加载了多个内存。如果您的应用程序都是关于2MB的数据,那么我认为只需将其加载到内存并使用它就可以了。

另一方面,如果加载速度过慢,您可能需要考虑使用NSKeyedArchiverNSKeyedUnarchiver来加载数据。它们比加载plist更快,如果你可以在逻辑部分拆分数据,你可以有选择地加载数据块。

另一种选择当然是使用SQLite或Core Data。这些是数据“表格”的理想选择。两者都可以处理大文件。