Swift:在Core Data Managed Object Property中存储自定义对象的字典/数组

时间:2015-03-30 20:38:21

标签: swift core-data nsmanagedobject

我正在努力实施以下“会议”#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!


}

Core Data Schema

Managed Object

0 个答案:

没有答案