设计核心数据数据库

时间:2014-04-29 20:53:20

标签: ios sqlite core-data

我正在寻找建议如何构建使用预填充数据的iOS核心数据应用程序。 问题: 用户会看到一个预先填好的(照片)sqlite数据库(简单),但他们可以修改默认数据(替换/删除照片)。我想保留主包上的默认照片而不将任何内容复制到app目录,但显然如果用户决定编辑/替换照片,我无法写入主包。

我不希望将照片保留在sqlite中,也不希望将默认照片复制到app目录(因为Apple不想添加用户未添加到应用程序的任何内容目录)。 问题: 如何从主捆绑中调用默认照片,但是从应用程序目录中调用已编辑/替换的照片?

任何想法都会非常感激......

类似的东西:

if (userEditedPhoto) {

imageView.image = //appDirectory:userPhoto

}

else {

imageView.image = //mainBundle:defaultPhoto

}

感谢

1 个答案:

答案 0 :(得分:1)

对于核心数据方面,它非常简单:

  1. 创建包含在应用包中的基于核心数据的SQLite文件
  2. 启动时,创建一个位于文档目录中的 NSPersistentStore
  3. 将两个商店添加到NSPersistentStoreCoordinator
  4. 核心数据会将它们视为单个商店,您可以从两者中读取并写入一个。复制正在编辑的图像非常简单,因此除非您有疑问,否则我不会详细介绍。

    更新

    Core Data不是数据库,它是一个对象存储。该对象存储可以根据需要在磁盘上使用尽可能多的单独文件。我上面的建议是在磁盘上有两个文件,从两个文件中读取并只写入一个文件。从而为您提供预先获取的数据。

相关问题