如何使用CloudKit保存图像?

问题描述

使用iCloud保存图像时遇到了问题。在遵循了一些教程之后,我能够从iCloud中保存和获取包含字符串的记录,但是我不知道如何对图像执行相同的操作。这是下面的一些代码,因此也许有人可以帮助我确定下一步该怎么做。任何帮助表示赞赏!

// saving to cloud

static func save(user: AppUser,completion: @escaping (Result<AppUser,Error>) -> ()) {
        let userRecord = CKRecord(recordtype: recordtype.User)
        userRecord["displayName"] = user.displayName as CKRecordValue
        userRecord["pfp"] = user.pfp as CKRecordValue // <-- **not sure if this is right?**
        userRecord["username"] = user.username as CKRecordValue
        userRecord["password"] = user.password as CKRecordValue
        userRecord["bio"] = user.bio as CKRecordValue
        
        CKContainer.default().privateCloudDatabase.save(userRecord) { (record,err) in
            dispatchQueue.main.async {
                if let err = err {
                    completion(.failure(err))
                    return
                }
                guard let record = record else {
                    completion(.failure(CloudFuncUserError.recordFailure))
                    return
                }
                let recordID = record.recordID
                guard let displayName = record["displayName"] as? String else {
                    completion(.failure(CloudFuncUserError.castFailure))
                    return
                }
                guard let pfp = record["pfp"] as? CKAsset else {
                    completion(.failure(CloudFuncUserError.castFailure))
                    return
                } // <-- **not sure if this is right?**
                guard let username = record["username"] as? String else {
                    completion(.failure(CloudFuncUserError.castFailure))
                    return
                }
                guard let password = record["password"] as? String else {
                    completion(.failure(CloudFuncUserError.castFailure))
                    return
                }
                guard let bio = record["bio"] as? String else {
                    completion(.failure(CloudFuncUserError.castFailure))
                    return
                }
                let appUser = AppUser(recordID: recordID,displayName: displayName,pfp: pfp,username: username,password: password,bio: bio)
                completion(.success(appUser))
            }
        }
    }

初始化


@main
struct TestForReleaseApp: App {
    
    var user = appUser()
    var isUser = AppUser(displayName: "",pfp: CKAsset <-- (this is a placeholder,I don't kNow what goes here),username: "",password: "",bio: "")
    var posts = Posts()
    var post = Post(displayName: "",content: "",createdAt: Date(),star: 0,stared: 0,repost: 0,reposted: 0,share: 0,shared: 0,comment: 0,commented: 0,comments: [""],isPublic: 0,isPremium: 0)
    
    var body: some Scene {
        WindowGroup {
            ContentView(post: post,user: isUser,appUser: user).environmentObject(user).environmentObject(posts).preferredColorScheme(.dark)
        }
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)