如何使用KVO观察协议的属性?

z

Only members of classes may be dynamic当我尝试dynamic向协议属性添加修饰符时,Xcode显示错误
所以我尝试了另一种方法,dynamic在类中而不是在协议中添加,必须通过写入来指示Gettable属性{get}
这是我的代码:

协议交换

var myproperty: Int {get} 

class.swift

dynamic var myproperty: Int {  
  return otherproperty  
}

如果我myproperty以正常方式观察,则在otherproperty更改myproperty时它不会触发KVO通知,因为在调用或使用之前值不会更改。
非常感谢!

z

我认为我们可以使用一些技巧来实现我们的目标。protocol添加一个名为observeKeyPathLike的属性中

协议交换

var myproperty: Int {get} 
var observeKeyPath: String {get}

class.swift

dynamic otherproperty: AnyObject!
var myproperty: Int {  
  return otherproperty  
}
var observeKeyPath {
  return "otherproperty"
}

观察。迅速

self.addObserver(protocol, 
      forKeyPath: protocol.observeKeyPath, 
         options: .New | .Old, 
         context: nil)

提示:如果keyPath使用点语法,例如"object.property",请确保objectproperty都被修改dynamic

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift KVO-观察枚举属性

来自分类Dev

如何在SKSpriteNode位置属性上使用KVO

来自分类Dev

如何使用Swift和KVO观察单个数组元素的变化(更新)?

来自分类Dev

协议扩展中的Swift属性观察器?

来自分类Dev

如何使用RxSwift观察Bool属性?

来自分类Dev

如何使用RxSwift观察Bool属性?

来自分类Dev

iOS KVO 观察另一个类属性

来自分类Dev

KVO 可观察属性在 Swift 中的类中的位置

来自分类Dev

是否可以在Swift中为协议实例设置观察者(KVO)

来自分类Dev

使用KVO观察UIView的子视图数组中的更改

来自分类Dev

使用Swift添加不带指针的KVO观察器

来自分类Dev

使用Swift添加不带指针的KVO观察器

来自分类Dev

领域清单KVO观察

来自分类Dev

如何为KVO使用mutableArrayValueForKey?

来自分类Dev

如何覆盖符合KVO的属性的吸气剂?

来自分类Dev

如何使用Swift协议设置iTunes ScriptingBridge的属性

来自分类Dev

如何观察可观察类的属性

来自分类Dev

Swift:如何在委派中使用属性观察器

来自分类Dev

如何使用属性观察器中提供的自定义?

来自分类Dev

如何使用dom-bind观察属性变化

来自分类Dev

如何在属性观察器(didSet,willSet)中使用枚举?

来自分类Dev

如何使用 Delegatecommand.ObservesProperty 观察多个属性

来自分类Dev

稍后如何在 rxjs 可观察流中使用属性?

来自分类Dev

如何使用属性观察器观察Swift集合类型的特定元素?

来自分类Dev

使用协议以typealias作为属性

来自分类Dev

使用弱属性不像协议

来自分类Dev

KVO不起作用(观察另一个类的属性)

来自分类Dev

删除对象作为某些KVO属性的观察者的最佳实践

来自分类Dev

如何使用Memcache协议

Related 相关文章

热门标签

归档