我即将启动一个新的IOS项目,我将使用Core Data作为为最终用户存储数据的主要方法。我在应用程序的规划阶段遇到了关于如何保存,加载和删除核心数据对象的问题。以下是我能想到的三种可能的方法:
方法1
在Application Delegate中创建一个通用数据对象,我将使用UISharedApplication
方法将其检索到每个视图控制器中。这意味着当应用程序启动时,它将使用Getters和Setter创建一个对象
方法2
创建一个数据模型类(NSObject
的子类)并在每个视图控制器中初始化它。这意味着每个视图控制器必须拥有它自己的NSManagedObjectContext(应用程序委托将在启动时提供),它将在初始化时传递给数据模型类。这意味着在整个视图控制器中,它将使用它自己的数据模型类并从中调用方法
方法3
让每个视图控制器自己进行保存。例如-(IBAction)didAdd;
将包含其中的所有代码以保存到数据库中。这样可以更容易地进行有效的数据调用,因为它可以使NSFetchResultsController
具有基于视图控制器的正确设置(批量大小等)。
我不确定哪种方式对我来说是最好的方式,如果你们中的任何人能让我知道哪种方法最好,或者如果没有哪种方法是好的,我会很感激,这是最好的方法。
答案 0 :(得分:0)
还有一个方法编号4,类似于您的方法1:将您的数据访问代码放入模型类中,并使其成为单例。这是在不同控制器之间共享模型状态的标准方法。将所有数据管理代码放入该单例模型可帮助您避免代码重复。