Ios 查询领域中具有反向关系的对象的正确方法
我目前在查询存储在反向关系中的数据时遇到问题。我有以下代码Ios 查询领域中具有反向关系的对象的正确方法,ios,swift,realm,Ios,Swift,Realm,我目前在查询存储在反向关系中的数据时遇到问题。我有以下代码 class Form: Object { dynamic var id: String = NSUUID().uuidString ... var answers = List<FormAnswer>() override static func primaryKey() -> String? { return "id" } ... } 创建FormAnswe
class Form: Object {
dynamic var id: String = NSUUID().uuidString
...
var answers = List<FormAnswer>()
override static func primaryKey() -> String? {
return "id"
}
...
}
创建FormAnswer对象时,我执行以下操作:
try! realm.write {
let answer = FormAnswer(value: ["key": key, "answer": answer, "form" : parentForm!]) // parentForm is of type "form"
realm.add(answer, update: true)
}
当我试图查询它时,我一无所获
let previousValue = realm.objects(FormAnswer.self).filter("key == %@ AND ANY form.id == %@", key, parentForm!.id).first?.answer
我已经用realm Browser检查了realm文件,其中有一个FormAnswer条目。但是只有两个字段(key和answer),而且似乎没有指向我的表单对象的链接
有人对我如何解决这个问题有什么想法吗
谢谢
链接对象
是一个计算属性,不能直接变异。而是通过更改关系的另一端来修改其值
尝试:
这会将新答案直接添加到表单
的答案
列表中,并将导致答案的表单
属性包含父表单
let previousValue = realm.objects(FormAnswer.self).filter("key == %@ AND ANY form.id == %@", key, parentForm!.id).first?.answer
try! realm.write {
parentForm.answers.add(FormAnswer(value: ["key": key, "answer": answer]))
}