【发布时间】:2018-03-24 19:53:53
【问题描述】:
我的应用程序和 Codable 的使用存在“设计”问题。
我负责管理马匹、教练和课程。 我正在使用一组马匹、一组教练员和一组课程(引用马匹和教练员),所有这些都作为变量。
现在我希望将它放在一个库对象中,并在此对象上使用 Codable。
我刚刚创建了一个库类,其中每个类都有一个数组。 我可以很好地加载 JSON 文件,并且所有数组都已填充,除非我丢失了马和教练的参考。
当我加载类时,如果它有关联的马,则会创建一个新对象,它不会引用已加载的马。
类库:
class Library : Codable {
var name:String=""
// Instructors
var instructors:[Instructor] = [Instructor]()
// Horses
var horses:[Horse] = [Horse]()
// Courses
var courses:[Course] = [Course]()}
课堂课程:
class Course : Codable {
var id:Int
var date:Date
var horse:Horse?
var instructor:Instructor?}
知道如何解决我的问题吗?
我并不是特别在寻找技术答案,但是您将如何解决此问题;)
谢谢, 尼古拉斯
【问题讨论】:
-
使用 JSON/XML/Codable 很难处理复杂的图。本质上,您需要编写自己的编码/解码实现,使用其 ID 序列化对象,然后在反序列化时,在表中查找以查看是否已经存在具有反序列化 ID 的对象
-
你能发布一些示例 JSON 吗?