我目前无法查询以反向关系存储的数据。我有以下代码
"style=direction:rtl"
和
class Form: Object {
dynamic var id: String = NSUUID().uuidString
...
var answers = List<FormAnswer>()
override static func primaryKey() -> String? {
return "id"
}
...
}
当我创建FormAnswer对象时,我会执行以下操作:
class FormAnswer: Object {
dynamic var key = ""
dynamic var answer = ""
let form = LinkingObjects(fromType: Form.self, property: "answers")
override static func primaryKey() -> String? {
return "key"
}
}
当我试图查询它时,我什么都没得到!
try! realm.write {
let answer = FormAnswer(value: ["key": key, "answer": answer, "form" : parentForm!]) // parentForm is of type "form"
realm.add(answer, update: true)
}
我已经使用Realm Browser检查了域文件,并且还有FormAnswer的条目。但是只有2个字段(键和答案),并且它们似乎不是我的Form对象的链接。
有没有人对如何解决这个问题有任何想法?
由于
答案 0 :(得分:3)
LinkingObjects
是计算属性,不能直接变异。相反,您可以通过更改关系的另一面来修改其值。
尝试:
try! realm.write {
parentForm.answers.add(FormAnswer(value: ["key": key, "answer": answer]))
}
这会将新答案直接添加到Form
的{{1}}列表中,并会生成包含answer
的答案form
属性