2012-10-02 25 views
0

我正在做核心数据。由于原始的sqlite文件包含应用程序中的数据。我决定做以下事情:核心数据解决方案读写分开

分开读写操作。从一个sqlite文件的一个数据源中进行所有读取,并将所有文件写入另一个文件。

由于iOS应用程序中的目录有一些规则,因此我打算将所有读取数据从bundle复制到缓存目录,并将写入数据放在文档目录中。

问题是,是否有可能直接在包资源中使用阅读文件。这意味着我不必将其复制到缓存文件中,这将为设备节省一些空间。

或者你们有其他更好的主意,请告诉我。

我将写入的数据放入文档中,因为其中的文件可以通过icloud备份,这可能充当我的程序中的一个功能。

+0

为什么你需要单独的文件?您可以只读或写入NSManagedObjectContext,然后随时保存。 –

+0

@Aaron,我想分开文件,因为只读文件包含所需的所有数据,这些数据的大小很大。写入文件包含用户活动。将写入文件放入文档目录时,可以对其进行备份。这就是你的大卫 – seanxiaoxiao

回答

0

你问你想做什么是一个好主意,但首先你需要考虑一些可能的陷阱。

我想你的包中的文件也是用Core Data创建的,它有一个MOM。您编写的新文件 - 它可能使用相同的MOM。如果你需要更新MOM,你会怎么做? iCloud上的文件将被称为版本1,也许用户iPhone使用版本1,但是您的新版本2被加载到用户iPad上。怎么办? ipad不应更新存储库,因为它会在尝试使用数据时使iPhone发生故障 - ipad无法知道所有其他设备是否已更新。

+0

大卫。首先。这两个文件,读写数据源来自不同的MOM。 – seanxiaoxiao

+0

对不起,我没有完成评论,但课程开始。我的想法是,不同设备的版本可能存在差距,我认为icloud对用户意味着什么。但在我的情况下,我的关注更多的是保持用户的行为。当用户删除应用程序并重新安装时,用户操作可以被下载并重新使用。所以我不会分开只读数据和写入数据。 – seanxiaoxiao