我再次谈到我的 RSS Reader iApp,目前它的设计方式如下:
- 数据模型:
Category->Feed->Post - 主视图:
Feed按类别分组 - 详细视图:
Post给定的 sFeed
所有视图和应用程序委托仅与相同的_mainMOC(ManagedObjectContext)交互。
每个创建的 NSOperations 都将使用自己_localMOC的连接到相同的 NSPersistentStoreCoordinator。
当应用程序启动时,它会为每个添加到 NSOperationQueue 的Feedsa fetchOpNSOperation 创建。这应该确保 RSSFeed将被单独下载、解析,然后将它们的内容插入Post到PostCoreData 中。
AppDelegate 观察NSManagedObjectContextDidSaveNotifications并合并修改如果notification它收到不是_mainMOC。然后它发送一个特定的 NSNotification 来通知每个视图需要一个reloadData。
问题:
- 我还需要将我的 _mainMOC
save:操作封装在performBlock块中吗? - 我的每个观点都应该只使用 a
_localMOC而不是_mainMOC? - 让每个视图的本地 NSFetchedResultsController 在 a 之前重新执行 fetch 不是多余的
reloadData吗? - 我是否应该让任何非只读核心数据操作成为排队的 NSOperation,即使在视图级别也是如此?
- 我怎样才能让这一切变得更顺畅(它仍然不是,我仍然有一些可怕的错误,所以重新设计是可能的)......
谢谢你的帮助。