Рабочий код
Внутри метода didSelectRowAt IndexPath
моего tableView у меня есть вызов, который обновляет модель UserSave, которая находится в области по умолчанию.Функция структурирована следующим образом:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let UserRealm = UserSave()
let realm = try! Realm()
try! realm.write {
UserRealm.articleLink = newsLink[indexPath.row]
UserRealm.articleBody = newsData[indexPath.row]
UserRealm.articleTitle = newsTitle[indexPath.row]
UserRealm.articleAuthor = newsSrc[indexPath.row]
}
performSegue(withIdentifier: "webKitSegue", sender: self)
}
При запуске область обновляется новыми значениями, как и должно быть.
Код проблемы
У меня есть вторая модель, UserPrefs, которая также является частью области по умолчанию.Вызывается внутри функции exrefresh(writeToRealm: String)
.Функция выглядит следующим образом:
func exrefresh(passed: String) {
let UserRealm = UserPrefs()
let realm = try! Realm()
try! realm.write {
UserRealm.fetchUrl = passed
}
self.refreshControl!.beginRefreshing()
self.refreshControl!.sendActions(for: .valueChanged)
}
Однако, когда эта функция выполняется, область сохраняет свои значения по умолчанию и не обновляется с новыми.
Models
// UserSave
import RealmSwift
class UserSave: Object {
@objc dynamic var articleTitle = "Default Title"
@objc dynamic var articleAuthor = "Default Author"
@objc dynamic var articleLink = "https://example.com"
@objc dynamic var articleBody = "Default Body"
}
// UserPrefs
import RealmSwift
class UserPrefs: Object {
@objc dynamic var applicationDark = false
@objc dynamic var fetchUrl = "https://example.com/"
}
Проблема
Я могу очень хорошо обновить модель UserSave, хотя я не могу изменить значения в UserPrefs, хотя оба они находятся вобласть по умолчанию.Я использую один и тот же код (с замененными именами) для обновления обеих моделей, и только одна работает правильно.У меня есть файл .realm, загруженный в браузере Realm, и я могу наблюдать за изменениями в UserSave.Я следовал инструкциям realm.io , и их код работает только на одной модели.
Заранее благодарен за любую помощь.