Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在核心数据中保存对象修改_Ios_Swift_Core Data - Fatal编程技术网

Ios 在核心数据中保存对象修改

Ios 在核心数据中保存对象修改,ios,swift,core-data,Ios,Swift,Core Data,我正在用Swift开发iOS应用程序 假设我在CoreData中存储了以下对象: class Exercise: NSManagedObject { @NSManaged var name: String @NSManaged var sets: Int16 @NSManaged var reps: Int16 } 如何保存用户对名称、集合和重复所做更改的所有历史记录 用户可以根据需要多次更改任何属性,我需要跟踪以显示进度等 我是否需要在每次更改时创建一个对象副本(具有

我正在用Swift开发iOS应用程序

假设我在CoreData中存储了以下对象:

class Exercise: NSManagedObject {
    @NSManaged var name: String
    @NSManaged var sets: Int16
    @NSManaged var reps: Int16
}
如何保存用户对名称、集合和重复所做更改的所有历史记录

用户可以根据需要多次更改任何属性,我需要跟踪以显示进度等


我是否需要在每次更改时创建一个对象副本(具有相同的id?),或者有更好的解决方案来保存修订?

我会创建一个与历史实体的“多对多”关系。历史记录实体将存储更改日期、更改的字段和旧/新值-

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

}

我将创建一个与历史实体的“多对多”关系。历史记录实体将存储更改日期、更改的字段和旧/新值-

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

}

我会创建一个与另一个对象的“多对多”关系,该对象存储了历史记录,其中包含更改日期、更改项目和新旧值等字段。我为什么不考虑它呢?:)请加上它作为答案。这是一个简单的解决方案,比创建副本更好。ThanksI将创建一个与另一个对象的“多人”关系,该对象存储了历史记录,并带有字段,例如更改日期、更改的项目和新旧值。我为什么不考虑它呢?:)请加上它作为答案。这是一个简单的解决方案,比创建副本更好。谢谢