当我尝试更新List上的值时遇到问题。 这是我的数据库模型:
class User: Object {
@objc dynamic var id : Int = 0
@objc dynamic var height : Int = 0
@objc dynamic var age : Int = 0
@objc dynamic var sex : String = ""
@objc dynamic var physicalActivity : Double = 1.0
@objc dynamic var goal : String = ""
let weightProgress = List<WeightProgress>()
let calories = List<Calories>()
override static func primaryKey() -> String? {
return "id"
}
}
class Calories : Object {
@objc dynamic var date : String?
@objc dynamic var eatenCalories : Int = 0
}
主要功能是,用户输入了多少卡路里,并将其保存到数据库中。日期由Date()
生成并转换为String
。如果下一个值具有相同的Date
我想要更新现有的eatenCalories
属性,如果Date
不同,我想为DB创建另一个记录。
有什么想法吗?
现在,在每个值添加后,它会在DB中创建另一条记录。
BR IMAT
答案 0 :(得分:0)
将现有对象添加或更新到Realm中。如果对象具有主键,则仅传递true以进行更新。如果Realm中没有对象具有相同的主键值,则插入该对象。否则,使用任何更改的值更新现有对象。
你应该使用
self.realm.add(item,update:true)
您应该将主键添加到对象