为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以在Swift中使用键值观察(KVO)?

是否可以在Swift中使用键值观察(KVO)?

慕少森 2019-08-30 16:31:13
如果是这样,在Objective-C中使用键值观察时是否存在其他不存在的关键差异?
查看完整描述

3 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

是和否:


是的,您可以在Swift中使用相同的旧KVO API来观察Objective-C对象。

您还可以观察dynamic继承自的Swift对象的属性NSObject。

但是...... 不,它没有强烈打字,因为你可以期待Swift原生观察系统。

使用Swift与Cocoa和Objective-C | 关键价值观察


不,目前没有任意Swift对象的内置值观测系统。


是的,有内置的Property Observers,它们是强类型的。

但是...... 不,它们不是KVO,因为它们只允许观察对象自己的属性,不支持嵌套观察(“关键路径”),你必须明确地实现它们。

Swift编程语言| 财产观察员


是的,您可以实现显式值观察,它将是强类型的,并允许从其他对象添加多个处理程序,甚至支持嵌套/“键路径”。

但是...... 不,它不会是KVO,因为它只适用于你实现为可观察的属性。

您可以在此处找到用于实现此类值观察的库:

Observable-Swift - 用于Swift的KVO - 值观察和事件


查看完整回答
反对 回复 2019-08-30
  • 3 回答
  • 0 关注
  • 545 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信