gpt4 book ai didi

objective-c - Cocoa Bindings,我应该只使用 KVO 吗?

转载 作者:行者123 更新时间:2023-12-03 17:20:32 24 4
gpt4 key购买 nike

   [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];
}

为什么我要选择一种方法而不是另一种方法来使 View 更新到我的模型属性?

最佳答案

对于绑定(bind),您必须编写的唯一代码是绑定(bind)本身,仅此而已。使用 KVO,您必须编写代码来处理通知。如果您绑定(bind) UI 并使用 Interface Builder,那么您根本不需要任何代码,这对于更简单的事情来说可能很有用/节省时间+您不必通用编写样板代码来保持事情与您同步将响应 KVO 通知。

我读过其他内容,但据我了解(我做了一个快速的新项目来验证这一点),绑定(bind)是双向的。因此,如果将文本字段绑定(bind)到 NSString,则当文本字段更新时变量会发生变化,并且您可以更改变量并且文本字段也会更新。 KVO 只会通知您指定更新的对象。

有人说绑定(bind)不好,认为它们不属于 iOS 等是件好事,但它们适用于简单的情况,所以也许你应该使用绑定(bind),直到发现它们不合适的情况。但话虽如此,如果您想在某个时候将代码转移到 iOS...

希望这对您来说是一个足够好的答案:)

关于objective-c - Cocoa Bindings,我应该只使用 KVO 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30672959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com