Core data IOS核心数据并发问题

Core data IOS核心数据并发问题,core-data,concurrency,nsoperation,master-detail,Core Data,Concurrency,Nsoperation,Master Detail,我再次谈到我的RSS阅读器iApp,目前它的设计方式如下: 数据模型:Category->Feed->Post 主视图:Feeds按类别分组 详细视图:Posts用于给定的Feed 所有视图和应用程序委托仅与相同的\u mainMOC(ManagedObjectContext)交互 每个创建的NSO操作都将使用自己的\u localMOC,该操作连接到同一个NSPersistentStoreCoordinator 当应用程序启动时,它为每个Feeds创建一个fetchOpNSOperatio

我再次谈到我的RSS阅读器iApp,目前它的设计方式如下:

  • 数据模型:
    Category
    ->
    Feed
    ->
    Post
  • 主视图:
    Feed
    s按类别分组
  • 详细视图:
    Post
    s用于给定的
    Feed
所有视图和应用程序委托仅与相同的
\u mainMOC
(ManagedObjectContext)交互

每个创建的NSO操作都将使用自己的
\u localMOC
,该操作连接到同一个NSPersistentStoreCoordinator

当应用程序启动时,它为每个
Feed
s创建一个
fetchOp
NSOperation,并将其添加到NSOperationQueue中。这应确保RSS
Feed
s将被单独下载、解析,然后由CoreData中的
Post
插入其内容

AppDelegate观察
NSManagedObjectContextDidSaveNotifications
,并在收到的
通知
不是
\u mainMOC
时合并修改。然后,它发送一个特定的NSNotification,通知每个视图需要重新加载数据

问题:

  • 我是否仍需要将我的_mainMOC
    save:
    操作包含在
    performBlock
    块中
  • 我的每个视图是否应该只使用
    \u localMOC
    而不是
    \u mainMOC
  • 重新加载数据之前,让每个视图的本地NSFetchedResultsController重新执行一次提取不是多余的吗
  • 我是否应该将任何非只读核心数据操作设置为排队操作,即使是在视图级别
  • 我怎样才能让这一切变得更顺利(现在还不是,我还有一些可怕的错误,所以重新设计是可能的)
谢谢你的帮助。

1)&2)看起来这些都不是绝对需要的:毕竟我们是在主线程中

3) 这不会有什么坏处:尤其是如果NSFECTDREDESULTSCONTROLLER使用变量NSPredicate(请参阅)

4) 不管怎样,我都要去做,因为它不痛

5) 保持联系