我已经阅读了有关核心数据和线程的材料,并了解了每个线程的单独 MOC 的原理。我的问题是,动态确定是使用不同的 MOC 还是主要的 MOC 的最佳方法是什么。我有一些方法有时在主线程上调用,有时在后台调用。不推荐动态检测线程还是可以?有什么陷阱吗?还是人们只是为后台进程编写单独的方法?
一些额外的细节......我有一个刷新过程,它使用一个简单的 performSelectorInBackground 在主线程之外执行一堆更新(所以不要在用户等待时锁定 UI)。这个过程通过连续的步骤移动,所以我不必担心在这个线程上访问数据库的多个东西,显然诀窍是保持主和后台的安全。我已经使用单独的上下文实现并在其他地方合并,但我最近重新架构,现在在后台使用我以前没有的方法。所以我想重写那些,使用单独的上下文,但有时会在主线程上击中它们并且可以很好地访问主 MOC。