我正在使用swift和cloudkit。
我从cloudkit服务器获取数据并尝试在tableview中显示它。从阵列到表格单元格读取CKrecord时出错:
致命错误:在解包可选值时意外发现nil
错误行是:let name = ckRecord.object(forKey: "code") as! String
请帮忙 - 下面是我的代码:
var Saveddata: [CKRecord] = []
@IBAction func getAlbum(_ sender: AnyObject) {
let Container = CKContainer.default()
let database = Container.publicCloudDatabase
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Photos", predicate: predicate)
database.perform(query, inZoneWith: nil) { //A
records, error in
if error != nil { //B
print(error?.localizedDescription ?? 10)
} // B
else { //C
count = (records?.count)!
print("countttttt \(count)")
for myrecord in records! { //D
self.Saveddata.append(myrecord as CKRecord)
} //D
let Queue = OperationQueue.main
Queue.addOperation() { //E
self.tableview.reloadData()
} //E
} //C
} //A
} //G
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let ckRecord = Saveddata[indexPath.row]
//ERROR appears when executing below line////////
let name = ckRecord.object(forKey: "code") as! String
cell.textLabel!.text = name
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.Saveddata.count
}