我应该更频繁地获取我的核心数据吗?

时间:2011-02-20 14:19:07

标签: iphone core-data

现在,当我的应用程序启动时,我从Core Data获取了所有数据。我的数据包含Groups和People的实体。这些组包含人员。因此,当我浏览应用程序时,我正在添加和删除人员和组。

我的问题在于当我从tableview中选择一个组并将该组传递到下一个tableview时。从那个tableview我可以按一个按钮/行,从模态视图添加一堆人。当我从该模态视图中按Done时,我需要它用那些新的People更新上一个视图,它没有正确执行。

似乎有一点,因为缺少一个更好的词,错误的是我传递了很多东西。在我更新群组中的人员后,我会更好地使用另一个提取吗?通过阅读其他人的说法,我可以有不同的观点来监听更新的核心数据并相应地改变他们的观点。

我真的希望这是有道理的。我一直在阅读很多东西,试图找出最好的方法,但我没有得到任何确定的东西。我觉得我的代码变成意大利面,所以我停下来,我试图重新考虑一切。我也想也许我需要自己的Model类,而不仅仅是Core Data自动生成的类。

2 个答案:

答案 0 :(得分:1)

从你所写的内容来看,你所做的事情听起来是正确的。我假设您正在使用NSFetchedResultsController。你实施了delegate methods outlined in the docs吗?具体来说,controllerWillChangeContent:方法应该为您提供所需的内容。

关于实现自己的NSManagedObject子类,请查看MOGenerator

答案 1 :(得分:0)

我会向你推荐NSFetchedResultsController。请参阅......

中的文档

http://developer.apple.com/library/ios/#documentation/CoreData/Reference/NSFetchedResultsController_Class/Reference/Reference.html

查看CoreDataBooks示例,特别是在...的

的RootViewController.m中

http://developer.apple.com/library/ios/#samplecode/CoreDataBooks/Listings/Classes_RootViewController_m.html%23//apple_ref/doc/uid/DTS40008405-Classes_RootViewController_m-DontLinkElementID_14

NSFetchedResultsControllerDelegate可以帮助您轻松更新以前的视图。在我写的时候,看一下示例代码,看看它是如何工作的。