J'ai essayé de ranger cela aussi longtemps que je pouvais, mais je suis vraiment coincé ici.CouchbaseLite Inverse Relation ne fonctionnant pas
Je suis en train d'utiliser Inverse Relationships
Fondamentalement, mon plan ressemble à ceci:
class Album
var artist: artist?
class Artist
@NSManaged var albums:NSArray?
class func albumsInverseRelation() -> String { return "artist" }
class func albumsItemClass() -> AnyClass { return Album.self }
Puis plus tard, je tente d'accéder à la propriété calculée, albums
bgdb.modelFactory?.registerClass("Album", forDocumentType: "Album")
bgdb.modelFactory?.registerClass("Artist", forDocumentType: "Artist")
if let artistID = artist?.document?.documentID, let fetchedArtist = try! Artist.fetchOne(field: "_id", operand: .Matches, value: artistID as AnyObject, database: bgdb) {
print(fetchedArtist.albums as! [Album])
}
Mais fetchedArtist.albums
retours un tableau vide!
Voilà pourquoi je suis confus, de débogage:
(lldb) po album?.artist?.document?.documentID
▿ Optional<String>
- some : "-obO5dJTBF-xu4lzbWTM9yU"
(lldb) po fetchedArtist.document?.documentID
▿ Optional<String>
- some : "-obO5dJTBF-xu4lzbWTM9yU"
Comme il apparaît, il y a un album qui a un ID de l'artiste et je peux également correspondre à cet ID d'artiste avec un artiste existant
Pourtant, quand je demande à l'instance artist
pour ses albums
, il ne retourne pas l'album qui a le même artist
ID
Suis-je manque quelque chose ici?