NSManagedObject中的isUpdated方法通知我实体是否已更新。
但是,如果与实体有关系的实体已更新,则不通知我。
我应该自己完成所有关系吗?
由于
答案 0 :(得分:1)
要考虑的几种方法是...... 观察上下文以查看是否有任何对象发生了变化,使用一些关键路径操作符来深入研究细节......这种方法可能容易出错且麻烦......
更好的方法是发出特别通知并在该通知中发送相应的信息......然后观察者只需要观察该通知,而不是kvo所有的密钥。
可能是这样的:
static NSString * kClassADidChangeKey = @"kClassADidChangeKey";
static NSString * kClassAKeyKey = @"kClassAKeyKey";
@interface ClassA : NSManagedObject
@property (nonatomic,copy) NSString * keyOfInterest;
@end
@implementation ClassA
@dynamic keyOfInterest;
-(void)setKeyOfInterest:(NSString*)theValue
{
[self willChangeValueForKey:@"keyOfInterest"];
NSMutableDictionary * userInfo = [NSMutableDictionary dictionary];
[userInfo setValue:key forKey:kClassAKeyKey];
[[NSNotificationCenter defaultCenter] postNotificationName:kClassADidChangeKey object:self userInfo:userInfo];
[self setPrimitiveValue:theValue forKey:@"keyOfInterest"];
[self didChangeValueForKey:@"keyOfInterest"];
}
@end