预先在app中存储大量数据

时间:2013-10-11 11:27:47

标签: iphone ios objective-c uitableview core-data

我在表格视图中显示了大量数据(超过100个条目)。数据将是静态的,所以我想将它存储在plist文件中。问题是当它在表格视图中显示时,用户将能够选择或取消选择一行,并且必须存储此信息。

换句话说,应用程序将包含一系列内容,用户可以选择他拥有的内容。

将数据存储在应用中的最佳方法是什么?所选信息是什么?

PS:我正在避免核心数据,但如果这是最好的方式,我怎样才能将数据预先存储在实体中?

3 个答案:

答案 0 :(得分:2)

100 entres实际上并不是大量数据。

我倾向于使用plist来获取这些少量数据。

如果您愿意,也可以将用户数据保存在同一个plist中: 当应用程序第一次运行时,它可以将plist复制到文档目录,以便可以编辑它(写入所有权数据)。

或者,您可以使用单独的plist作为用户数据。

答案 1 :(得分:2)

没有“最好的方法”,但一种可行的方法是使用JSON文件。如果数据不是太大,请说JSON文件远小于1 MByte。

在编辑器中创建和修改JSON文件非常舒服。您可以像往常一样使用NSJSONSerialization解析和创建表示。

提示:具有N个字节的JSON文件,创建Foundation对象的表示,大致需要总共5 * N到10 * N的分配空间。

答案 2 :(得分:1)

跟踪选定和未选定行的最简单方法是: 通过点击单元格,此代码可以节省价值。

   - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    BOOL isSelected=[[NSUserDefaults standardUserDefaults] boolForKey:[indexPath.row stringValue]];
    [[NSUserDefaults standardUserDefaults] setBool:!isSelected forKey:[indexPath.row stringValue]];

}