在Objective-C中存储和加载大量数据的最佳方式

我正在制作一个会使用大量数据的应用程序,例如~100个条目,每个条目包含多个图像,> 250个字的文本和多个1个字/字符的值。

我只是想知道在目标C做这个最好的做法?

例如,我会有一个纯文本文件,其中包含所有的值,然后在运行时读取它?

或者,我需要创build一个对象,其中包含所有这些值?

我更喜欢这个不使用Web源,因为我希望应用程序能够离线运行。

你有很多select。 您可以将数据存储在plists中,为它们创build对象并序列化为文件或使用数据库。 对于你的特定情况,我会build议存储在像sqlite的数据库。

  • 财产清单介绍(plists)
  • 使用NSArchiver进行对象序列化
  • 惊人的SQLite

可能有几十个字段的一百个logging不是很多数据。 我build议将数据存储为属性列表,可能是一个字典数组。 这是最简单的解决scheme,可能绰绰有余您的需求。 加载你的数据可能很简单:

NSArray *records = [[NSArray alloc] initWithContentsOfFile:pathToFile]; 

数组中的每个条目都可以是一个包含logging中每个字段的键的字典。 这给了你很大的灵活性。 您当然可以单独访问每个logging,但是您也可以使用NSPredicateselect符合您指定条件的logging的子集。 您也可以使用数组的键值编码来获取特定键的所有值的数组。 例如,如果您需要每个logging的“名称”字段的数组,您可以说:

 NSArray *names = [records valueForKey:@"name"]; 

有一个像SQLite和Core Data这样的解决scheme,但是你可能不需要这样一个小的数据集。