如何在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/