我正在努力实施以下“会议”#39;核心数据中的对象。除了exerciseLog之外的所有属性都可以在Core Data中正确保存和访问。我目前拥有此设置的方式允许我操纵会话'对象实例一旦创建就在内存中,但是在保存ManagedContext时,Object不会持久保存exerciseLog属性,而是存储为nil。 这可能发生,因为当对象在内存中时,可以操纵exerciseLog属性的瞬态值,但不实现它的持久存储。我不知道如何正确实现允许exerciseLog字典的能力;使用String键和值作为自定义对象,' Set'要在保存托管上下文时存储的数组。 Set对象不是Core Data的托管对象。它只是一个常规对象,会话对象应该引用和存储(即不涉及具有关系的对象图)。注意:我想如果有一个解决方案,那么它也适用于' Set' class是一个结构,这本来是我的偏好。
import Foundation
import CoreData
@objc(Session)
class Session: NSManagedObject {
@NSManaged var exerciseLog: [String: [Set]]
@NSManaged var sessionDate: NSDate
@NSManaged var sessionDuration: NSNumber
@NSManaged var routineForSession: Routine
}
class Set: NSObject, Printable{
var reps: Int!
var weight: Double!
}