[self.toolController bind:@"fillColor" toObject:self.fillColorWell withKeyPath:@"color" options:kvoDict];
与
[self.fillColorWell addObserver:self.toolController forKeyPath:@"color" options:NSKeyValueObservingOptionNew context:nil];
在我的toolController
课程中,在-observeValueForKeyPath:...
if( [keyPath isEqual:@"color"] ) {
self.fillColor = [object selectedObject];
}
为什么我会选择一种方法而不是另一种方法来使视图更新为我的模型属性?
答案 0 :(得分:0)
对于绑定,你必须编写的唯一代码是绑定本身,就是这样。使用KVO,您必须写入代码来处理通知。如果您的绑定UI和使用Interface Builder那么您根本不需要任何代码,这对于更简单的事情可能是有用的/节省时间+您没有通用写锅炉板代码来保持事物是同步的你会回应KVO通知。
我已经读过了,但是我的理解(我做了一个快速的新项目来验证这一点),绑定是双向的。因此,如果将文本字段绑定到NSString,则变量会在文本字段更新时更改,您可以更改变量并更改文本字段。 KVO只会通知您指定更新的对象。
有人说关于绑定的坏事以及它们不是iOS等等的好处,但是它们适用于简单的情况,所以也许你应该使用绑定直到你发现它们不合适的情况。但是,如果您想在某些时候将代码转移到iOS上,那就说了......
希望对你有足够好的答案:)