gpt4 book ai didi

ios - 如何使用 CloudKit 将记录添加到记录类型的引用列表?

转载 作者:搜寻专家 更新时间:2023-11-01 07:24:44 25 4
gpt4 key购买 nike

我有两个简单的记录类型:ArtworkArtistArtwork 作为一个 child 可能属于一个 Artist,但是一个Artist 可能有多个艺术品。

以下是与上述记录类型相关的屏幕截图。

enter image description here enter image description here

我可以通过以下方式简单地为 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 to Collection in the object model, add a reference field to the Collection 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com