如何解决如何使用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 举报,一经查实,本站将立刻删除。