(寻找拯救Realm property 的最佳方法 .
我有一个UIViewController与很多TextView等,我从一个Realm对象填充 .
每次修改文本字段时,我都需要发回以更改领域属性 .
(不酷)的事情,是我无法直接保存,我必须打开一个写事务 .
object.propertyA= “hello” // crash
try! realm.write { //work
userBeer?.Name = lblbeerName.text!
}
所以,我发现所有文本都有点痛苦(而且不干净) .
我看过rxRealm,但看不到任何(新手)样本 .
所以,我有两种方法不介意
- 修改属性的模型getter和setter
var beerName:String? {get 设置{试试! realm.write }
-
从这里使用RXSwift方法(https://www.raywenderlich.com/149753/bond-tutorial-bindings-swift)
-
将TextField.text添加到var String中,并观察此字符串进行写入 .
你怎么看?
我完美的世界将是找到一种方法来直接绑定TextField.text属性,例如:myRealmObject.property.BindTo(self.txtName)
2 回答
更改
write
块中的属性:来自Realm的Katsumi在这里 . 虽然这不是最好的方法,但我提出了另一种方法 . 对于长期事务,您可以使用
realm.beginWrite()
和try! realm.commitWrite()
而不是基于块的API .例如,您可以在视图出现时打开事务,然后在视图消失时关闭事务,如下所示:
通过这种方式,您可以随时在视图中为Realm对象赋值 . 小心不要让交易保持开放 . 为避免增加文件大小,请勿在事务处理期间在后台频繁更新数据 .