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

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

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

import Foundation import CoreData class Favourite: NSManagedObject { @NSManaged var origin: Stop struct Stop { var name: String; var id: String; } } 

但这并不好,因为它说

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

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

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

我会这样做:

 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 } } } 

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