Ios 核心数据NSManagedObject更改

Ios 核心数据NSManagedObject更改,ios,iphone,objective-c,core-data,Ios,Iphone,Objective C,Core Data,我使用的是一个简单的Master-Detail场景,其中Master使用一个fetchedresults控制器来填充其tableview。选择一行后,相应的NSManagedObject将传递到局部视图控制器,用于填充一些UILabel。我添加了一个EditorViewController,以允许用户更新某些字段。保存时,我关闭EditorViewController并返回详图视图控制器。保存使用分配给NSManagedObject的上下文 知道所讨论的对象已更改以便我可以在详细信息中更新UI的

我使用的是一个简单的Master-Detail场景,其中Master使用一个fetchedresults控制器来填充其tableview。选择一行后,相应的NSManagedObject将传递到局部视图控制器,用于填充一些UILabel。我添加了一个EditorViewController,以允许用户更新某些字段。保存时,我关闭EditorViewController并返回详图视图控制器。保存使用分配给NSManagedObject的上下文


知道所讨论的对象已更改以便我可以在详细信息中更新UI的最佳方法是什么?目前,如果我尝试更新细节VC中的UILabel,我看不到对象属性的任何新值。我知道委托/协议场景可能会起作用,但我很好奇是否已经有了我可以使用的东西——我可以寻找更新对象的通知,或者我是否应该在详细信息屏幕上有一个获取结果控制器?我不知道该走哪条路

您可以使用
NSFetchedResultsController
并注册该对象的获取请求(我认为这是一个很好的解决方案)。或者,您可以监听通知,如
NSManagedObjectContextDidSaveNotification
,但我不推荐这样做。
或者,您可以将对象传递给EditorViewController,并直接在那里更新属性

NSFetchedResultsController
是解决此问题最常用的解决方案。它侦听上下文中的更改,并相应地更新表视图的内容。您的问题相当笼统,因此我将。

如果没有看到任何代码,很难说您想要的是什么,但是使用CoreData的另一种常见模式是使用模型-视图-控制器(MVC)范式将数据存储中的信息放在类变量中,然后您的接口使用该类变量。您需要将CoreData和类变量之间的数据保存、更新和刷新与使用该数据的接口分开

典型的工作流程是:

//User does something that creates new info
//Store that info permanently in CoreData
//Refresh the class Variable by loading from CoreData (you can also skip this by updating the class variable simultaneously while saving to CoreData, but this is really sloppy and problematic. Better to save then re-fetch)
//Update your interface from the class Variable

或者,你可以这样做,但我不确定这是否适合你的情况。

我做了更多的调查,回来的数据看起来是更新和准确的。我的用户界面没有在视图中更新。我将把这作为一个新问题进行调查。您链接到的页面确认我的应用程序设置的CoreData部分正确。谢谢