У меня есть отношения, где:Swift - получить родителя объекта Realm; Всегда пустой
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 и создать детей (Двигатель) вручную в замкнутом контуре, аналогично этому:
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 или пустые.
Как я могу запросить данный элемент и убедиться, что я могу захватить родительские данные?
Большое спасибо
Первое, что я хотел бы использовать приложение браузера Realm, чтобы увидеть, если объекты и отношения корректно сохраняются в БД Realm. –
Я попытаюсь использовать приложение браузера Realm, чтобы сделать то, что вам нужно. Дело в том, что я использую область XCTest, а Realm устанавливается как встроенная память. Я могу отключить его и попробовать в любом случае. – zardon
Большое спасибо, я смог убедиться, что я не писал никаких объектов в память; также было много других ошибок и проблем, связанных с XCTest, которые я не ожидал и должен был их исправить. Я видел, что данные записываются в браузере области, но заметил, что там много данных, когда я знаю, что должно быть определенное число. Я буду исследовать дальше в свое время. – zardon