Iphone 大问题
我有一个非常大的属性列表文件(大约2MB大),我需要在我的应用程序中使用其中的数据。但是,由于nsdictionary的大小,将所有数据存储在某种nsdictionary中是不正常的。我的意思是这样的:Iphone 大问题,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,我有一个非常大的属性列表文件(大约2MB大),我需要在我的应用程序中使用其中的数据。但是,由于nsdictionary的大小,将所有数据存储在某种nsdictionary中是不正常的。我的意思是这样的: NSString *path = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"plist"]; someDictionary = [[NSDictionary alloc] initWithContentsOfFile:path
NSString *path = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"plist"];
someDictionary = [[NSDictionary alloc] initWithContentsOfFile:path];
您建议从该plist获取数据或使用什么来代替plist文件。在您分析应用程序之前,我不会对此进行优化。使用2MB的内存听起来很多,但有些游戏只为声音和图像加载了2MB内存的倍数。如果你的应用程序都是关于2MB的数据,那么我认为把它加载到内存并使用它是完全好的
如果另一方面加载太慢,那么您可能需要考虑使用<代码> NKEKEDIGOVER 和<代码> NKEKEDE UNCORVER < /COD>加载您的数据。它们比加载plist更快,若可以将数据分成逻辑部分,则可以有选择地加载数据块
当然,另一种选择是使用SQLite或核心数据。这些是数据“表”的理想选择。两者都可以处理大文件。您应该尝试以某种方式拆分plist。如果不在内存中加载,可能没有真正的方法来读取这么大的plist。此外,您可以尝试使用一种二进制格式来序列化plist,这可能比纯文本更节省空间。