数据库同步问题(缓存+线程)

时间:2016-03-11 05:48:50

标签: ios objective-c multithreading core-data magicalrecord

我正在尝试将我的数据库(核心数据)与服务器同步。我正在使用Magicalrecord(https://github.com/magicalpanda/MagicalRecord)进行核心数据操作。

我正在后台同步上传文件到服务器。虽然此操作在后台运行,但用户可以添加/删除/更新文件。

首先尝试使用 MR_contextForCurrentThread MR_saveToPersistentStoreAndWait 进行数据库操作。问题是,即使数据已同步但未更新队列,我也会收到重复数据。我在这里找到了理由,线程上有一些缓存,数据尚未保存在主线程中,因此当前线程不断返回旧数据。

第二,我使用 MR_context saveWithBlockAndWait 进行数据库操作,但仍然遇到同样的问题。

最后,我使用 MR_defaultContext 和任何保存方法然后一切正常但我遇到的问题是“ CoreData:错误:NULL _cd_rawData但是对象没有被转换为错误“:线程问题。

哪个上下文或保存方法更适合在两个线程中运行数据库操作并且每次都希望在两个线程上都有最新提交的数据时?

我应该使用一个上下文并同步进行数据库操作吗?

0 个答案:

没有答案