昨天成功完成顯示資料後,今天要來實作CloudKit Database的刪除功能,我一樣是使用UIMenu來實作編輯及刪除功能的按鈕
對UIMenu有興趣的話可以參考第六天的發文
以下是刪除資料的function,這時候伏筆來了!昨天宣告struct時有一個欄位是recordID,我們就可以根據每筆資料recordID的獨立性來刪除資料
func deleteItem(_ recordID : CKRecord.ID){
database.delete(withRecordID: recordID) { deleteID, error in
if let error = error{
print(error)
}else{
print("刪除成功")
self.fetchItem()
}
}
}
這邊也會用到tableViewCell和viewConrtoller的protocol,用來同步cell和存資料陣列的index值,可以看看第七天的文章,操作都是差不多的,要注意的是要在tableView的cellForRowAt裡面多加cell.index = indexPath.row,不然不會抓到正確的index值
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "NameTableViewCell",for: indexPath) as! NameTableViewCell
cell.nameLabel.text = nameArray[indexPath.row].name
cell.index = indexPath.row
cell.delegate = self
return cell
}
如此一來就能成功實作刪除功能啦!(gif有點小,傷眼請見諒QQ)
明天就來實作CloudKit Database的修改功能吧!