【发布时间】:2018-04-24 15:31:48
【问题描述】:
我在尝试更新列表中的值时遇到问题。 这是我的数据库模型:
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 中创建另一条记录。
BR iMat
【问题讨论】:
-
实际上,如果您的对象是通过用户输入生成的,则两个对象不能具有相同的
Date,因为它们至少会相差几秒钟。那么你希望你的日期匹配到什么精度呢?顺便说一句,在 Realm 中将日期存储为Strings 是一个坏主意。 Realm 支持存储Date属性,所以你应该这样做。 -
我正在使用 SwiftDate pod 来管理所有
Date对象。我只想存储 Day,没有时间,例如:25.04.2018(该格式是强制性的 - 这就是为什么我像String一样存储它)