我想加載,然後修改並重新保存一個數組。CloudKit無可選錯誤
這裏是代碼,修改FUNC是頂級之一:
func modifyUserGroupsRequestee(){
print("step2")
acceptedUsersArray.append(groupNameLbl.text!)
//error
userGroupRecordToUpdate.setObject(acceptedUsersArray as CKRecordValue?, forKey: "userGroups")
database.save(recordToUpdate) { (savedRecord, error) in
if error != nil{
print(error.debugDescription)
}else{
print("SAVED RECORD")
}
}
}
func resaveUserGroups(){
print(addedUser)
print("step1")
// add group to requestees user groups
let pred = NSPredicate(format: "username = %@", "\(addedUser)")
let query = CKQuery(recordType: "PersonalUser", predicate: pred)
let operation = CKQueryOperation(query: query)
//operation.resultsLimit = CKQueryOperationMaximumResults
operation.recordFetchedBlock = { (record: CKRecord!) in
if record != nil{
self.userGroupRecordToUpdate = record
// self.acceptedUsersArray = (record.object(forKey: "userGroups") as! Array)
print("usergroup names:: \(self.acceptedUsersArray)")
if let acceptedUserArrays = record.object(forKey: "userGroups") as? [String] {
// self.feedTableView.reloadData()
self.acceptedUsersArray = acceptedUserArrays
print("looks like we r going forward")
self.modifyUserGroupsRequestee()
// }
//self.feedTableView.reloadData()
print(groupNames.count)
print(self.acceptedUsersArray)
}
}
database.add(operation)
//self.tableView.reloadData()
// print(leaderboardInfo.count)
}
}
功能打印第一步,但從來沒有獲取到第二步。在底層函數中,我有一個if let語句,我嘗試創建來解決我的無問題(我在前面的代碼中提到過我的代碼 - 無論如何,我相信我正在實現if let語句,因爲。沒有數據被加載,即使是在雲套件數據
而且我有我的個人用戶cloudKit記錄設置,這裏有一個圖:
我移動了一條操作線,但它並沒有改變if let語句內部的代碼沒有被調用的事實,即使它應該導致它不爲零。 –
如果你在if-let之前加上'print(record)',你會得到什麼? – OOPer
我需要單獨發佈此代碼段導致其太大...可選( { –