我正在构建一个将使用核心数据模型的应用程序。我是 Objective C 的新手,我通常的设计模式并不真正适用于 Core Data 和 Objective C,至少我似乎无法找到证实它们适用的示例。
我已经通过了 Apple Developer 示例和 intertubes 上的不同来源。
似乎要利用核心数据,我需要将 managedObjectContext 传递给我的每个 viewController,让 viewController 实现 NSFetchedResultsControllerDelegate,然后实现每个获取方法并随后实现
NSFetchedResultsChangeInsert
NSFetchedResultsChangeDelete NSFetchedResultsChangeMove NSFetchedResultsChangeUpdate
这在每个 viewController 中添加了大约 100 多行代码,这与我一次又一次编写的代码相同的 90%。另外,我必须传递所有内容并跟踪它的内存占用。
在其他语言中,我将构建几个类的单例模型,这些类包含根据请求维护和交付数据的方法,可从任何地方获得。看来我不能在 Objective C 中采用这种方法。如果我在哪里构建一个静态类,它接受一个 managedObjectContext 并返回我需要的东西,我仍然必须将 managedObjectContext 传递给每个视图,它不会是异步的,就像我实现在结果准备好时才调用的委托方法一样。
我希望这是有道理的,并且有人可以确认没有其他合理的方法可以做到这一点,或者帮助我指出以一种好的方式结束它的方向。
谢谢:)