Realm文档建议我可以使用KVO观察List的更改。
https://realm.io/docs/swift/latest/#key-value-observation
对象子类上的几乎所有托管(不可忽略)属性都是 符合KVO,以及Object和List上的invalidate属性。
我要观察的项目声明为:
let subPoints = List<ECAnyPointData>()
设置观察值时,我在以下行上遇到构建错误:
subPointObs = subject.observe(#keyPath(Subject.subPoints) { [unowned self] object, change in
“#keyPath”的参数是指非“ @objc”属性的“ subPoints”
(它以新样式\ .subPoints keyPath生成,但是出现运行时错误“无法从KeyPath中提取字符串”)
我无法将列表标记为@objc,这会导致生成错误:
无法将属性标记为@objc,因为其类型无法在Objective-C中表示
Realm文档建议观察列表中的更改有些不寻常:
列表属性无需标记为动态即可观察到, 与普通属性不同。
这是否意味着Swift 4出现了一些问题,因为动态并不意味着@objc?