1

我已经阅读了 Stack Overflow 上的以下问题(What is the best way to connect Realm and SwiftBond),不幸的是,这个问题已有 2 年历史。我处于相同的位置,我想创建一个 Realm 对象的可观察实例,由此 Realm 对象将从 UI 更新,然后可以写入 Realm。

根据我的阅读和理解,我认为Observable(object:keyPath:)Bond v6 中不再存在,但我无法完全弄清楚替代方案是什么,尽管我认为它与dynamic(keyPath:ofType:).

我正在努力寻找可以让我执行以下 Bond 6 版本的示例或任何文档:

class Dog: Object {
  dynamic var name = ""
  dynamic var birthdate = NSDate(timeIntervalSince1970: 1)
}

extension Dog {

  class ObservableDog {
    let name: Observable<String>
    let birthdate: Observable<NSDate>

    init(dog: Dog) {
      name = Observable(object: dog, keyPath: "name")
      birthdate = Observable(object: dog, keyPath: "birthdate")
    }
  }

  func observableVariant() -> Dog.ObservableDog {
    return ObservableDog(dog: self)
  }
}

let myDog = Dog().observableVariant()

myDog.name.observe { newName in
  print(newName)
}

myDog.name.bindTo(nameLabel.bnd_text)

realm.write {
  myDog.name.value = "Jim"
}

我现在正在尝试这个的第二天,所以我希望有人能够提供帮助。

提前致谢。

4

0 回答 0