【发布时间】:2018-12-31 17:20:31
【问题描述】:
这是来自以下How to map nested complex JSON objects and save them to core data?的cmets的后续问题。
想象一下,我的应用程序已经有了这段代码。
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. 在乘客和 Trip 之间创建一个反向关系?简单地说,我只是希望它成为一个属性。从概念上对我来说,它也只是一个属性。这不是真正的关系......
或者,一旦您使用 Core-data,那么每个自定义类型都需要显式地成为 NSManagedObject 的子类?否则不会持久化。我猜这也是 object graph 的意思。你的图表需要是完整的。图表之外的任何内容都会被忽略...
我问这个是因为我真正想要存储的 JSON 对象是巨大的,我正在努力减少需要完成的工作。
【问题讨论】:
-
您能否澄清一下:1) 同一个
Passenger对象可以分配给多个行程吗?如果是这样,您将需要想出某种方法来区分它们,因为如果它们被编码在一个属性中,每个 Trip 对象将有不同的Passengers。 2)每次旅行可以有超过一名乘客吗?如果没有,您可以将每个Passenger 属性添加为Trip 的属性,并避免编码麻烦。 3) UIImage 有多大 - 它们可能更好地存储在文件系统中,并且文件路径存储在 CoreData 中。 -
1) 如果我得到一份旅行清单,那么可以。
Passenger对象可以分配给一段时间内的多次行程。话虽如此,我不明白你提到的问题。你能详细说明吗? 2) 是的。它可以不止一个。 3)好点。 -
注意:确保您也看到了未接受的答案。它的解决方案更好,但不完全符合问题的特殊性
标签: json swift core-data codable nsvaluetransformer