[英]Realm Swift how to add observer to object type (nil)
假設我有兩個流程:
1)我在數據庫中有數據,然后我使用從數據庫,集合和觀察者獲取帶有參數的實體。 之后,我從服務器加載數據,並且觀察者塊成功觸發。 沒關系。
2)我數據庫中沒有數據。 然后我嘗試做同樣的事情,它看起來像:
myObject = MyRealmService()
.fetchAll(MyRealmObject.self,
filter: "userID == \(someID)")?
.first
realmToken = myObject?.observe { [weak self] change in
guard let _self = self else { return }
switch change {
case .deleted:
_self.popCurrentViewController()
case .error(let error):
_self.show(error: error)
case .change:
_self.updateUI()
}
}
loadDataFromServer() { object in
object.saveToRealm()
}
然后myObject為nil,因此未設置通知塊。
用這種方式處理通知的方式是什么? 我的意思是,也許可以通過某種方式將塊設置為過濾器類型( MyRealmObject.self, filter: "userID == \\(someID)"
),因此,如果在領域中寫入了適合它的對象,那么將觸發觀察塊?
您可以觀察Realm 結果 ,而不是觀察仍未存儲在Realm數據庫中的單個對象。
let realm = try! Realm()
var results = realm.objects(MyRealmObject.self).filter: "userID == \(someID)")
var notificationToken = results.observe { change in
switch change {
case .update:
DispatchQueue.main.async {
block()
}
default: ()
}
}
您可以觀察結果對象而不是單個對象,並根據更改執行一些操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.