Swift Cloudkit数据检索:为什么致命错误:在读取数据库记录时,在展开可选值时意外发现nil
我正在使用swift和cloudkit 我正在从cloudkit服务器获取数据,并尝试在tableview中显示它。将CKrecord从数组读取到表单元格时出错: 致命错误:在展开可选值时意外发现nil 错误行是:Swift Cloudkit数据检索:为什么致命错误:在读取数据库记录时,在展开可选值时意外发现nil,swift,cloudkit,Swift,Cloudkit,我正在使用swift和cloudkit 我正在从cloudkit服务器获取数据,并尝试在tableview中显示它。将CKrecord从数组读取到表单元格时出错: 致命错误:在展开可选值时意外发现nil 错误行是:let name=ckRecord.object(forKey:“code”)as!字符串 请帮助-以下是我的代码: var Saveddata: [CKRecord] = [] @IBAction func getAlbum(_ sender: AnyObject) {
let name=ckRecord.object(forKey:“code”)as!字符串
请帮助-以下是我的代码:
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
}
一个或多个记录没有“代码”字段的数据。您的假设不正确。但是我所有返回值的记录都正确打印了savedata数组,因此所有数据都是可选绑定的,以检查您使用的
CKRecord
是否具有code
的值,如果您的记录实际上,code
有一个值,这样你就不会崩溃。我用另一个字段做了这件事,它是一个图像,我遇到了同样的问题,所以我试着让它变得简单,并只在现在检索这段代码-下面是我的第一次尝试,我使用了条件绑定,错误是相同的let image=ckRecord.object(forKey:“Photo”)as!CKAsset,如果让CKAsset=image as?CKAsset{//代码的其余部分