スウィフトレルムを使って、私は親の視点から子供の所有者を得たいと思っています。簡単に言えばレルム - 親子関係にあるエンティティの所有者のリストを取得する方法は?
は、エンティティの関係のように説明することができます:指定された親を使用して
Parent -< Child <- Player
、私はプレイヤー(所有者)のリストを取得したいです。
私は私の質問をしようとすると私の質問は間違っていると信じています。
// Cut-down summary of Realm objects and relationships
public class Parent: Object {
var children = List<Child>()
}
public class Child: Object {
private let parents = LinkingObjects(fromType: Parent.self, property: "children")
private let owners = LinkingObjects(fromType: Player.self, property: "children")
var parent:Parent? {
return self.parents.first
}
var owner: Player? {
return self.owners.first
}
}
public class Player : Object {
public let children = List<Child>()
}
let realm = try! Realm()
self.createPlayers(amount: 5)
let playerList = realm.objects(EYPlayer.self)
XCTAssert(playerList.count == 5)
// In my tests:
let firstParent = realm.objects(Parent.self).first
let firstChild = firstParent?.children.first
let firstPlayer = realm.objects(Player.self).first
// Assign the first player with the first child
try! realm.write {
firstPlayer?.children.append(firstChild!)
}
// give me a list of owners for a given parent
let owners = realm.objects(Parent.self).filter("ANY [email protected] > 0")
print (owners)
// Test fails; it says there are 0 results
XCTAssert(owners.count == 1, "Expected: 1, Found: \(owners.count)")
このテストは失敗します。
XCTAssert(owners.count == 1, "Expected: 1, Found: \(owners.count)")
私は1つの所有者があると期待しています。
代わりに、私は0人の所有者を得ます。
私は間違っていますか?
NSPredicatesとRealmを使用して、特定の子供のオーナーのリストを取得するにはどうすればよいですか?
感謝
編集:私はすべての選手を追加していなかったことがわかりました。追加プレーヤーの要約版が上に示されています