Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 查询领域中具有反向关系的对象的正确方法_Ios_Swift_Realm - Fatal编程技术网

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]))
}