我正在构建一个使用 CloudKit 的 SwiftUI 社交照片共享应用程序,其中用户个人资料(包括用于个人资料图片的 CKAsset)显示在整个应用程序中。为了减少跨多个视图的配置文件的冗余获取,我尝试将配置文件 CKRecord 的缓存实现到自定义模型中。 (对于处理用户个人资料图片的 CKAsset 非常重要,确保它已从 CloudKit fileURL 暂存区域移出)
这是我目前的方法:
struct UserProfileModel: Identifiable {
let id: String
let displayUsername: String
var profilePicture: UIImage? = nil
}
class UserProfileCache: ObservableObject {
static let shared = UserProfileCache()
@Published var cache: [UserProfileModel] = []
}
我正在寻找有关如何有效构建此缓存的指导。具体来说,这种方法是否有任何我可能会忽略的问题?
预先感谢您的帮助!
您不需要手动完成。 CloudKit Sync 已经足够了。