我有两个简单的记录类型:Artwork
和Artist
。 Artwork
作为一个 child 可能属于一个 Artist
,但是一个Artist
可能有多个艺术品。
以下是与上述记录类型相关的屏幕截图。
我可以通过以下方式简单地为 artwork
设置 artist
:
let artistID = CKRecordID(recordName: "F297D690-888B-4B55-9FBD-27CAEF4BBD83")
let artworkID = CKRecordID(recordName: self.idTextField.text!)
self.container.publicCloudDatabase.fetchRecordWithID(artworkID, completionHandler: { artwork, error in
if let artwork = artwork {
artwork["artist"] = CKReference(recordID: artistID, action: CKReferenceAction.None)
self.container.publicCloudDatabase.saveRecord(artwork, completionHandler: { artwork, error in
print("done")
})
}
})
但问题是:
如何设置反向关系?换句话说,如何将 artworkID
添加到 artistID
的引用列表中?
苹果说:
...to represent the one-to-many relationship from
Artist
toCollection
in the object model, add a reference field to theCollection
record.
但是如何做到这一点呢?
最佳答案
这是我找到的最简单的答案:
let artworkID = CKRecordID(recordName: self.idTextField.text!)
if let artist = artist, var artworks = artist["artworks"] as? [CKReference] {
let reference = CKReference(recordID: artworkID, action: CKReferenceAction.None)
if !artworks.contains(reference) {
artworks.append(reference)
}
artist["artworks"] = artworks
//here you can save your changes or do whatever it needs
}
关于ios - 如何使用 CloudKit 将记录添加到记录类型的引用列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36862404/