Core data RestKit/Core数据:NSFetchedResultsController无法识别映射对象的更改

Core data RestKit/Core数据:NSFetchedResultsController无法识别映射对象的更改,core-data,restkit,nsfetchedresultscontroller,Core Data,Restkit,Nsfetchedresultscontroller,只是简单概述一下我的问题所指的内容。数据模型基于两个名为“Customer”和“Reservation”的NSManagedObject类。我从web服务获得的JSON如下所示: "Reservation": { "Id": 1, "Reservation": "Just a description", "Note": "Just anything", "Customer": { "Id": 1, "Name": "Smith",

只是简单概述一下我的问题所指的内容。数据模型基于两个名为“Customer”和“Reservation”的NSManagedObject类。我从web服务获得的JSON如下所示:

"Reservation": {
    "Id": 1,
    "Reservation": "Just a description",
    "Note": "Just anything",
    "Customer": {
        "Id": 1,
        "Name": "Smith",
        "Firstname": "John",
        "Phonenumber": "00000"
    }
}
fetchedResultsController = [Reservation fetchAllSortedBy:@"name" ascending:YES withPredicate:nil groupBy:@"name"];
fetchedResultsController.delegate = self;
我使用NSFetchedResultsController及其委托来管理表视图。接收新条目正常工作。我的fetchController代码如下所示:

"Reservation": {
    "Id": 1,
    "Reservation": "Just a description",
    "Note": "Just anything",
    "Customer": {
        "Id": 1,
        "Name": "Smith",
        "Firstname": "John",
        "Phonenumber": "00000"
    }
}
fetchedResultsController = [Reservation fetchAllSortedBy:@"name" ascending:YES withPredicate:nil groupBy:@"name"];
fetchedResultsController.delegate = self;
如果保留对象中有任何更改,表视图也会正确更新。当映射的“Customer”对象(如Name、Firstname或Phonenumber)发生任何更改时,问题就会出现

检查database.sql文件可确保数据库中的数据已更改,并且RestKit/Core数据工作正常。似乎唯一的问题是取决于未调用的代理。如果我在“Reservation”和“Customer”中更改了一个属性,那么代理将被正确地解雇(可能是因为“Reservation”中的更改),并且所有Customer和Reservation属性的表视图都将正确地更新


如果我关闭并重新打开应用程序,表视图将按其应该的方式完全加载

不幸的是,情况就是这样。“获取结果”控制器只跟踪一个实体属性的更改(在您的情况下为
保留)。它不跟踪相关对象的更改。这也是我首先想到的,但当我实现
NSManagedObjectContextObjectsDidChangeNotification
时,通知包含更改的相关对象。因此,核心数据似乎能够识别更改,但不会激发代理。是否有其他方法更新有关相关对象的表视图?是的,可以识别更改,但FRC仅对其自身实体的更改作出反应。有关类似的讨论,请参阅此线程:对于属于为其创建fetchedResultsController的实体的顶级属性(在服务器中)所做的任何更改,您是否得到了更新?对我来说,即使是为其创建NSFetchedResultsController的实体的属性,我也不会得到更新回调。如果您有任何线索,请查看并回答:这里只是一个想法,但是如果您使用客户实体设置第二个fetchedResultsController呢?然后它是否会启动controllerddChangeEvent:方法,您仍然可以重新加载图表表视图数据?