【发布时间】:2017-08-25 03:30:18
【问题描述】:
我试着尽可能拖延这个时间,但我真的被困在这里了。
我正在尝试使用Inverse Relationships
基本上我的方案是这样的:
class Album
var artist: artist?
class Artist
@NSManaged var albums:NSArray?
class func albumsInverseRelation() -> String { return "artist" }
class func albumsItemClass() -> AnyClass { return Album.self }
然后我尝试访问计算属性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])
}
但是fetchedArtist.albums 返回一个空数组!
这就是我在调试时感到困惑的原因:
(lldb) po album?.artist?.document?.documentID
▿ Optional<String>
- some : "-obO5dJTBF-xu4lzbWTM9yU"
(lldb) po fetchedArtist.document?.documentID
▿ Optional<String>
- some : "-obO5dJTBF-xu4lzbWTM9yU"
看起来,有一个专辑有一个艺术家 ID 我还可以将该艺术家 ID 与现有艺术家匹配
然而,当我向artist 实例询问albums 时,它无法返回具有相同artist ID 的相册
我错过了什么吗?
【问题讨论】: