这是下面的注释中的后续问题,该注释如何映射嵌套的复杂JSON对象并将其保存到核心数据。
想象一下,我已经为我的应用准备了这段代码。
class Passenger{ var name: String var number: String var image : UIImage // init method } class Trip { let tripNumber : Int let passenger : Passenger init(tripNumber: Int, passenger: Passenger) { self.tripNumber = tripNumber self.passenger = passenger } }
现在,我决定为我的应用程序添加持久性。我只是 想 有旅行的表。我想显示出行旅客,但不需要表格直接查询旅客。这只是旅行的自定义对象/属性。每次我访问旅客时,都会通过Trips。
那么,有没有办法我可以创建一个名为’TripEntity’的NSManagedObject新子类并存储我的乘客- 无需1.为’Passenger’创建另一个NSManagedObject子类2.创建一个与Passenger和Trip之间具有反比关系的关系?简单地说,我只是希望它成为一个属性。从概念上讲,对我来说,这也是一个属性。这不是真正的关系…
还是在使用Core-data之后,每个自定义类型都需要明确地是NSManagedObject的子类?否则,它将不会持续存在。我猜这也是对象 图的 含义。您的图需要完整。图外的任何内容都将被忽略…
我之所以这样问,是因为我实际上要存储的JSON对象是巨大的,并且我正在尝试减少需要完成的工作。
任何自定义属性都必须是可以表示为“核心数据”属性类型之一的东西。其中包括明显的东西,例如字符串和数值。它还包括“二进制”,这是可以在NSData(Data在Swift中)进行转换的任何东西。
NSData
Data
根据您的描述,最好的方法可能是
NSCoding
Passenger
passenger
如果您做这两件事,Core Data将自动调用NSCoding方法以在您的Passenger类和可以保存在Core Data中的二进制Blob之间进行转换。