class User: Object {
@objc dynamic var id = ""
@objc dynamic var dateFirstStart:TimeInterval = 0
//dates
@objc dynamic var dateLastStart:TimeInterval = 0
@objc dynamic var dateLastAppClose:TimeInterval = 0
@objc dynamic var dateLastDataUpdateCheck:TimeInterval = 0
@objc dynamic var dateLastFilesUpdateCheck:TimeInterval = 0
override class func primaryKey() -> String? {
return "id"
}
}
Нужно ли создавать функцию для каждого значения, которое нужно изменить?Вот так:
func updateUserDateFirstStart(date:Date){
do {
let realm = try Realm()
try realm.write {
let user = getUser()
user. dateLastStart = Date().timeIntervalSince1970
}
} catch let error as NSError {
print("ERROR \(error.localizedDescription)")
}
}
Мне нужно что-то вроде
let user = getUser()
user.dateLastStart = Date().timeIntervalSince1970
dataManager.updateUser(user)
И в моем DataManager:
func updateUser(user:User){
do {
let realm = try Realm()
try realm.write {
realm.add(user, update: true)
}
} catch let error as NSError {
print("ERROR \(error.localizedDescription)")
}
}
Но если я сделаю это, как вы можете видетьв моем решении для желания у меня всегда есть попытка изменить объект вне ошибки транзакции записи.
Я попытался создать новый объект полностью и использовать идентификатор объекта, который я хочу изменить.Это работает, но потребуется еще больше строк кода.