大家好,多年阅读 StackOverflow,现在我决定加入。我正在努力解决这个问题:
我有一个“仓库”实体,它有两个对多关系“人员”和“卡车”。我想观察在给定“仓库”对象的情况下,其中一个关系(并了解其中一个关系)何时发生变化(插入、删除)。
目前我正在这样做:
[mydepot addObserver:self forKeyPath:@"Trucks" options:NSKeyValueObservingOptionNew context:nil];
和
[mydepot addObserver:self forKeyPath:@"Persons" options:NSKeyValueObservingOptionNew context:nil];
但是每次两个相关集合之一发生变化时,observeValueForKeyPath
都会被调用两次(每个键路径一次)。
我做错了吗?查看“更改”字典,(也观察 OptionOld)显示没有意外更改(当我更换人员时,卡车没有更改),但通知仍然出现。
谢谢,彼得罗
编辑:似乎两次“更改”字典都包含“新”字段中的整个关系。(显然是一次人,一次是卡车)
编辑2:即使是简单的属性,它也会与 managedctx 保存操作有关吗?好像当您保存时,整个对象都被认为已更改..