我有一个图像(UIImage,它也是url),我正在尝试将它作为CKAsset发送到CloudKit,但我有这个错误:Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Non-file URL'.这是代码:
override func viewDidLoad() {
super.viewDidLoad()
send2Cloud()
}
func send2Cloud() {
let newUser = CKRecord(recordType: "User")
let url = NSURL(string: self.photoURL)
let asset = CKAsset(fileURL: url!)
newUser["name"] = self.name
newUser["photo"] = asset
let publicData = CKContainer.defaultContainer().publicCloudDatabase
publicData.saveRecord(newUser, completionHandler: { (record: CKRecord?, error: NSError?) in
if error == nil {
dispatch_async(dispatch_get_main_queue(), { () -> Void in
print("User saved")
})
} else {
print(error?.localizedDescription)
}
})
}
Run Code Online (Sandbox Code Playgroud)
我有URL,我可以打印,复制并粘贴到我的导航器,它将显示我的图像!所以,我不知道这里发生了什么......
如果我使用UIImage而不是它的URL会更容易吗?因为,正如我之前所说,我有两个!任何帮助非常感谢!多谢你们!!
我正在尝试更新CloudKit中的现有记录,但我正在创建一个新记录,而不是更改值!这是代码:
func pairing(phone: String, ctid: String) {
ctUsers = [CKRecord]()
print("THE PHONE IS: \(phone)\n")
let publicData = CKContainer.default().publicCloudDatabase
let predicate = Predicate(format: "phone == %@", phone)
let query = CKQuery(recordType: "Elder", predicate: predicate)
publicData.perform(query, inZoneWith: nil) { (results: [CKRecord]?, error: NSError?) -> Void in
if error != nil {
print(error?.localizedDescription)
}
if let users = results {
self.ctUsers = users
print("\nHow many users in cloud: \(self.ctUsers.count)\n")
if self.ctUsers.count != 0 {
let user = CKRecord(recordType: "Elder")
user["careTakerId"] = ctid
let …Run Code Online (Sandbox Code Playgroud)