我应该在 Swift 中使用 Cocoa 绑定吗?

Should I use Cocoa Bindings in Swift?

我不太确定 Cocoa 绑定和 IBOutlets/IBActions 之间的根本区别。我目前正在将一个 Obj-C 项目迁移到 Swift 3,我想知道使用绑定是否是常见的做法,尤其是在 Swift 中?一般而言,关于绑定的社区讨论很少,我是 Cocoa/CocoaTouch 开发人员的 CS 学生,所以我希望得到详细的回答。

首先,Cocoa 绑定不受 Cocoa Touch 支持,而仅受 Cocoa 支持。由于软件开发的重点转向了移动设备,Cocoa 绑定变得不那么出名了。但是,您可以在键值观察之上实现绑定。问题是,值不值得。重要的是键值观察。

另外 Cocoa 绑定是响应式编程的一种实现。在移动平台上这样做的压力小于在桌面上,因为 UI 是 "more modal"。

相对于Swift,如果没有特殊的语言特性和Objective-C的动态运行时环境,就不可能实现KVO和Cocoa绑定。 类 在运行时创建,选择器从字符串构建等等。所有动态的东西 Swift 都讨厌并试图使它们变得不必要。所以你可以称它为"unswifty"。然而,它是 Cocoa 的一个活生生的部分,除了意识形态原因,我不明白你为什么要放弃它。