如何在iOS上的核心数据中存储Swift Struct?

r_t*_*r_t 11 struct core-data ios swift

目前我将我的一个类作为NSData存储在一个plist中,显然这不是一个好方法.

所以我正在尝试设置Core Data,但我的班级有Structs.这就是我所拥有的:

import Foundation
import CoreData

class Favourite: NSManagedObject {
    @NSManaged var origin: Stop

    struct Stop {
        var name: String;
        var id: String;
    }
}
Run Code Online (Sandbox Code Playgroud)

但这并不好,因为它说

属性不能标记为@NSManaged,因为其类型无法在Objective-C中表示

此外,如果没有发生此错误,我不知道我在xcdatamodeld文件中设置了什么.

我想我可以在结构中存储值并在初始化对象时分配?这是最优/干净的方式吗?

Sah*_*mir 10

我会这样做:

import Foundation
import CoreData

    struct Stop {
       var name: String;
       var id: String;
    }

    class Favourite: NSManagedObject {

        @NSManaged var name: String
        @NSManaged var id: String

        var stop : Stop {
           get {
                return Stop(name: self.name, id: self.id)
            }
            set {
                self.name = newValue.name
                self.id = newValue.id
            }
         }
    }
Run Code Online (Sandbox Code Playgroud)

非常有趣的文章,你应该阅读:http://www.jessesquires.com/better-coredata-models-in-swift/