2016-07-14 175 views
0

我有兩個Realm對象。 IdPair和IdPairScore。 IdPair是一個帶有幾個字符串標識符的簡單類,用於標識我擁有的特定類。Realm對象的領域對象子對象

IdPairScore具有整數分數以及IdPair,以便確定它是哪一個分數,如下所示。

class IdPairScore: Object { 
    var id:IdPair? 
    var totalRight:Int = 0 
} 

當應用程序啓動時我得到的所有的保存IdPair的由下面的代碼行:

let pairs = realm.objects(IdPair) 

的問題是,這種回升保存的IdPairScore的孩子的IdPairs。例如,如果我保存一個IdPairScore,然後運行上面的代碼行「對」將有一個值!

我預計如果我單獨保存一個「IdPair」個人它會檢索它與上面的行。如果我將它保存爲「IdPairScore」的屬性,它將不是用上面的代碼行檢索它。謝謝。

回答

1

這是打算的行爲。將Realm對象添加爲另一種類型的對象的子對象並不會使其成爲該對象的唯一對象。它與任何其他對象一樣添加到Realm中,然後建立它與鏈接對象之間的關係。

如果您需要一種機制來確定一個對象當前屬於另一個對象,你可以使用域的inverse relationships功能

class IdPair: Object { 
    var parentScores = LinkingObjects(fromType: IdPairScore.self, property: "id") 
} 

您可以在查詢中使用這些屬性可以輕鬆過濾出的那些別沒有父對象。