2017-09-11 36 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財產。

相關問題