Доброго времени суток.Столкнулся с такой проблемой: Получаю данные о погоде с api.openweathermap и записываю их в БД Realm. Потом с помощью функции получаю значения:
func getSearchCityWeatherFromDB() -> Results<SearchCityWeather> {
do {
let realm = try Realm()
let searchCityWeather = realm.objects(SearchCityWeather.self)
print("get from DB: \(searchCityWeather)")
return searchCityWeather
} catch let error as NSError {
fatalError("Error opening realm: \(error)")
}
}
И потом с помощью
func updateUI() {
notificationToken = results.observe { [weak self] (changes: RealmCollectionChange) in
switch changes {
case .initial:
let searchCityWeather = self?.manager.getSearchCityWeatherFromDB()
self?.updateLabelsAndImages(searchCityWeather: searchCityWeather!)
print("new")
case .update:
let searchCityWeather = self?.manager.getSearchCityWeatherFromDB()
self?.updateLabelsAndImages(searchCityWeather: searchCityWeather!)
print("update")
case .error(let error):
print("error")
// An error occurred while opening the Realm file on the background worker thread
fatalError("\(error)")
}
}
}
пытаюсь изменить ярлыки и картинки. Проблема в том, что при первом запросе (есть текстовое поле и кнопка поиска), все данные отображаются абсолютно нормально. Но если повторить запрос по городу, который уже искал, в консоле данные обновляются, а в интерфейсе остаются значения предыдущего запроса.
Спасибо.