在我的应用程序中,我观察托管对象的属性。更改可能会导致其某些其他属性的调整,因此托管对象本身会收到更改属性的消息。这些更改通过在 Interface Builder 中设置的绑定发生。
我在托管对象的实现中有以下方法:
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ( !processingChange )
{
processingChange = YES;
*** DO STUFF TO THIS MANAGED OBJECT'S PROPERTIES ***
[self.managedObjectContext processPendingChanges];
processingChange = NO;
return;
}
}
布尔值是为了避免无休止的processingChange
“通知循环”,但它没有像我预期的那样工作(而且它看起来像一个真正的肮脏黑客)。
必须有另一种方法来做到这一点。有什么建议么?