Swift - 获取Realm对象的父级;永远是空的

时间:2017-01-07 20:12:26

标签: swift realm parent-child

我有一段关系:

  

Parent有许多Children

即:

class Factory: Object {
public let engines = List<Engine>()
}

class Engine:Object {
private let parents:LinkingObjects<Factory> = LinkingObjects(fromType: Factory.self, property: "engines")
    var parent:Factory? {
        return self.parents.first
    }
}

我通过JSON读取工厂并在for循环中手动创建子项(Engine),类似于:

var engines:[Engine] = [Engine]()
for _ in stride(from:0, to: 3, by: 1) {
let engine: Engine = Engine.init()
engines.append(engine)
}
return engines

在我的测试中,我想查询给定引擎的父级以确保父级是正确的;或者可能获得父属性。

但是,每当我尝试通过父项获取属性时,它总是为空;

for (_, element) in (factories.enumerated()) {
  for (_, eng) in element.engines.enumerated() {
    print (eng.parent ?? "N/A" as Any)  // Always prints out N/A
  }
}

理想情况下,我希望能够访问父母的数据;比如父母的名字,也许是费用等。

我尝试过重置模拟器并删除派生数据;但不管我做什么,结果总是N / A或空。

如何查询给定元素并确保我可以获取父数据?

非常感谢

1 个答案:

答案 0 :(得分:1)

事实证明,为解决这个问题,我必须做很多事情。

我正在使用XCTest而Realm导致出现多个目标的问题。

  1. 制作所有模型类“commit A [... list of commits] commit R
  2. 从测试目标中删除模型,其中包括将JSON数据加载到内存中的文件
  3. 我必须把我的数据写入Realm,我还没有这样做;

    public