我正在使用Swift的iOS应用程序。
假设我在CoreData中存储了以下对象:
class Exercise: NSManagedObject {
@NSManaged var name: String
@NSManaged var sets: Int16
@NSManaged var reps: Int16
}
如何保存用户所做的名称,集合和代表的所有更改历史记录?
允许用户根据需要多次更改任何属性,我需要跟踪它以显示进度等。
我是否需要在每次更改时创建一个对象复制(具有相同的ID?),或者有更好的解决方案来保留修订?
答案 0 :(得分:0)
我会创建一个与历史实体的'to-many'关系。历史实体将存储更改的日期,已更改的字段以及旧/新值 -
class Exercise: NSManagedObject {
@NSManaged var name: String
@NSManaged var sets: NSNumber
@NSManaged var reps: NSNumber
@NSManaged var history: NSSet
}
class ExerciseHistory: NSManagedObject {
@NSManaged var changeDate: NSDate
@NSManaged var changedItem: String
@NSManaged var newValue: NSNumber
@NSManaged var oldValue: NSNumber
@NSManaged var exercise: Exercise
}