我有一个在后台运行的刷新过程(只使用 performInBackground 就可以了),其中一部分有数据库更新,所以我有一个单独的 MOC 用于后台线程。然后我使用 didSave 通知将更改合并到主 MOC。当应用程序在后台刷新时,用户可以在 UI 周围单击。
大多数情况下都有效,但我时不时地看到一些锁。当我查看锁之前调用的方法时,它访问了主 MOC。我的刷新过程中没有任何东西可以访问它,所有东西都可以访问后台 MOC。但是,我在想我对后台 MOC 所做的更改确实会使用 didSave 通知合并。如果我在执行 mergeChangesFromContextDidSaveNotification 时尝试查询一个 MOC,那会是问题吗?解决这个问题的最佳方法是什么?我以为我已经用一个单独的 MOC 为我的后台线程解决了我的数据库问题,但是合并将是一个问题,对吧?