Ios 如何让单例观察核心数据模型的变化?

Ios 如何让单例观察核心数据模型的变化?,ios,Ios,如何使用单例对象观察CoreData的更改 在我的应用程序中,每次用户添加一个新的CoreData FoodEntry时,我都要通知我的Singleton,它将汇总当天的卡路里总量,然后我的ViewController将被通知当天的卡路里总量已更改,它可以更新UI。因此Singleton正在观察CoreData上下文,而viewController正在观察Singleton number cruncher类 到目前为止,我的计划是实现singleton并让它订阅NSManagedObjectCo

如何使用单例对象观察CoreData的更改

在我的应用程序中,每次用户添加一个新的CoreData FoodEntry时,我都要通知我的Singleton,它将汇总当天的卡路里总量,然后我的ViewController将被通知当天的卡路里总量已更改,它可以更新UI。因此Singleton正在观察CoreData上下文,而viewController正在观察Singleton number cruncher类

到目前为止,我的计划是实现singleton并让它订阅
NSManagedObjectContextObjectsIDChangeNotification
,然后处理回调方法
handleDataModelChange
中的数字……我得到两个错误

CoreData:错误:严重的应用程序错误。在核心数据更改处理期间捕获异常。这通常是
nsManagedObjectContextObjectsIDChangeNotification
的观察者中的错误

+[Fit扳手手柄数据模型更改::
无法识别的选择器发送到类0x27a58

我设置了一个异常断点,当我保存managedObjectContext时发生,但我无法让它打印出userInfo=(


这一行的末尾是一个流氓分号吗

- (void)handleDataModelChange:(NSNotification *)note;

很惊讶你没有在这里得到编译错误。NSLog(@“%@Objects更新,%@Objects更新

Deleted, %@ Objects Inserted",[updatedObjects count],[deletedObjects count],[insertedObjects count]);

第一个占位符用于对象,但[deletedObjects count]返回一个整数。%i可能工作得更好。

我建议不要这样做。我从不需要一个单一对象来观察CoreData上下文的更改。查看您的示例,我发现您计划对所有内容使用单一托管对象上下文,这会使您更难创建可能不一致/无效的对象。订阅负责管理核心数据管理对象的视图控制器中的上下文更改。你说得对,谢谢……不过语法不是问题……目前这是一个混乱的问题。。。
Deleted, %@ Objects Inserted",[updatedObjects count],[deletedObjects count],[insertedObjects count]);