我正在研究iOS编程,并在我的应用程序中使用Core Data来保留游戏数据,但是,我想知道我的方法是否是使用Core Data的错误方法。我的数据库中有三个表,前两个表与另一个表具有一对多关系(即UserProfile->>拼图包->>拼图)。
我使用和保留数据的方法很简单,使用NSFetchedResultsController检索UserProfile的实例,并将UserProfile对象作为实例变量存储在我的App Delegate中。然后,在其余的代码中,我都使用该UserProfile对象访问和修改拼图包和拼图的状态(代表用户在游戏中的进度),并且每当我对对象进行更改时,我只需调用NSManagedObjectContext的save方法更新数据库,该数据库也存储在App Delegate中。
我的问题是,是否应该在需要访问或修改数据时随时从数据库中获取数据,还是我目前的方法是一次获取顶层对象并经常调用save
方法?这是使用Core Data的正确方法?
在此先感谢您的智慧!如果我的问题很奇怪,我很抱歉,我还是菜鸟。
最佳答案
只要您仅使用单个NSManagedObjectContext处理这些对象(即,您不必合并上下文之间的更改),那么我就不会发现一次获取并根据需要进行保存的问题。
就是说,当您使用多个上下文(例如,使用NSOperation / NSOperationQueue或其他需要独立上下文的多线程技术)时,您需要确保合并更改并更新其他上下文,以便从一个线程进行更改不要在别人身上砸东西。
关于iphone - 我是否可以通过在启动时获取对象一次并在要持久保存数据时调用save来正确使用Core Data?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4166893/