我正在用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/

10-12 01:50