我正在用Swift开发iOS应用程序。
假设我在CoreData中存储了以下对象:
class Exercise: NSManagedObject {
@NSManaged var name: String
@NSManaged var sets: Int16
@NSManaged var reps: Int16
}
如何保存用户对名称、集合和重复所做更改的所有历史记录?
用户可以根据需要多次更改任何属性,我需要跟踪这些属性以显示进度等。
我是否需要创建一个对象副本(具有相同的id?)对每一次修改还是有更好的解决方案来保留修改?
最佳答案
我将创建一个“多对多”关系到一个历史实体。history实体将存储更改的日期、更改的字段和旧/新值-
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
}
关于ios - 将对象修改保存在核心数据中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31767049/