【发布时间】:2016-03-16 09:31:07
【问题描述】:
我正在尝试使用 RxSwift 在 MVVM 中进行绑定。
我有一个Enum:
enum Color : Int {
case Red = 0, Green
}
测试类
class Test : NSObject {
var color: Color = .Red
dynamic var test: String? {
didSet {
print("didSet \(test)")
}
}
}
并想观察如下变化:
test.rx_observe(Color.self, "color").subscribeNext { (color) -> Void in
print("Observer \(color)")
}.addDisposableTo(bag)
但该程序与
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<RDProject.Test 0x7ff373513020> addObserver:<RxCocoa.KVOObserver 0x7ff37351a420> forKeyPath:@"color" options:5 context:0x0] was sent to an object that is not KVC-compliant for the "color" property.'
简单的String 代码有效:
test.rx_observe(String.self, "test").subscribeNext { string in
print("Observer \(string)")
}.addDisposableTo(bag)
test.test = "1"
test.test = "2"
我发现here 让类继承自NSObject 我应该将其设为dynamic,但我不能将Enum 设为动态。
有没有办法让Enum 可观察?
【问题讨论】:
标签: swift key-value-observing rx-swift