Предположим, у меня есть два потока:
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)"
), поэтому, если в области есть запись объекта, который ему подходит, то блок наблюдения срабатывает?