我有两个Realm对象。 IdPair和IdPairScore。 IdPair是一个简单的类,带有几个字符串标识符,用于标识我拥有的特定类。
IdPairScore有一个整数得分和一个IdPair,以便确定它的得分如下所示。
class IdPairScore: Object {
var id:IdPair?
var totalRight:Int = 0
}
当应用启动时,我会通过以下代码获得所有已保存的IdPair:
let pairs = realm.objects(IdPair)
问题在于,这会将IdPairs保存为IdPairScore的子女。例如,如果我保存一个IdPairScore然后运行上面的代码行" pair"会有一个值!!!
我预计如果我保存一个" IdPair" 单独它将使用上面的行检索它。如果我将其保存为" IdPairScore"它将 NOT 使用上面的代码行检索它。感谢。
答案 0 :(得分:1)
这是预期的行为。将Realm对象添加为另一种类型对象的子对象不会使其成为该对象的独占对象。它像任何其他对象一样被添加到Realm中,然后建立它与链接对象之间的关系。
如果您需要一种机制来确定某个对象当前是否属于另一个对象,您可以使用Realm的inverse relationships功能
class IdPair: Object {
var parentScores = LinkingObjects(fromType: IdPairScore.self, property: "id")
}
您可以在查询中使用这些属性,以便轻松过滤掉那些没有父对象的属性。