【发布时间】:2013-10-31 01:50:27
【问题描述】:
我再次介绍了我的 RSS Reader iApp,目前它的设计方式如下:
- 数据模型:
Category->Feed->Post - 主视图:
Feeds 按类别分组 - 详细视图:
Posts 对于给定的Feed
所有视图和应用程序委托仅与同一个_mainMOC (ManagedObjectContext) 交互。
每个创建的 NSOperations 都将使用自己的_localMOC,该_localMOC 连接到同一个 NSPersistentStoreCoordinator。
当应用程序启动时,它会为每个 Feeds 创建一个 fetchOp NSOperation,并将其添加到 NSOperationQueue。这应该确保 RSS Feeds 将被单独下载、解析,然后它们的内容将由 Post 插入到 CoreData 中的 Post。
AppDelegate 观察NSManagedObjectContextDidSaveNotifications 并在它收到的notification 不是_mainMOC 时合并修改。然后它发送一个特定的 NSNotification 来通知每个视图需要reloadData。
问题:
- 我还需要将我的 _mainMOC
save:操作包含在performBlock块中吗? - 我的每个视图是否应该只使用
_localMOC而不是_mainMOC? - 让每个视图的本地 NSFetchedResultsController 在
reloadData之前重新执行提取不是多余的吗? - 是否应该将任何非只读核心数据操作设为排队的 NSOperation,即使在视图级别也是如此?
- 我怎样才能让这一切变得更顺畅(现在还没有,而且我还有一些可怕的错误,所以重新设计是可能的)...
感谢您的帮助。
【问题讨论】:
标签: core-data concurrency nsoperation master-detail