2017-09-11 30 views
1

我目前无法查询存储在反向关系中的数据。我有以下代码正确的方法来查询Realm中的反向关系对象

class Form: Object { 
    dynamic var id: String = NSUUID().uuidString 
    ... 
    var answers = List<FormAnswer>() 

    override static func primaryKey() -> String? { 
     return "id" 
    } 
... 
} 

class FormAnswer: Object { 
    dynamic var key = "" 
    dynamic var answer = "" 
    let form = LinkingObjects(fromType: Form.self, property: "answers") 

    override static func primaryKey() -> String? { 
     return "key" 
    } 
} 

当我创建一个FormAnswer对象我做到以下几点:

,当我尝试查询它,我什么也没得到!

let previousValue = realm.objects(FormAnswer.self).filter("key == %@ AND ANY form.id == %@", key, parentForm!.id).first?.answer 

我已经用Realm Browser检查了领域文件,并且有一个FormAnswer条目。但只有2个字段(键和答案),并没有看起来是我的表单对象的链接。

有没有人有任何想法,我该如何解决这个问题?

由于

回答

3

LinkingObjects是计算属性,不能被直接突变。相反,您可以通过更改关系的另一侧来修改其值。

尝试:

try! realm.write { 
    parentForm.answers.add(FormAnswer(value: ["key": key, "answer": answer])) 
} 

这增加了新的答案直接向Formanswer名单,并会导致含parentForm答案的form财产。

相关问题