我有一个数组fruit = ["Apple", "Orange", "Pear", "Kiwi"]
,它属于实体FOOD并在UItableView中显示。是否有一种方法使某些内容不可删除?例如,我能否使"Kiwi"
不可删除。
类似这样的代码:
let i = fruit.index(where: "Kiwi")
let IArr = [0...fruit.count]
IArr = IArr.filter{$0 != i}
//删除Kiwi的索引
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IArr) {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
if editingStyle == .delete{
let FRUIT = fruit[indexPath.row]
context.delete(FRUIT)
appDelegate.saveContext()
do {
fruit = try context.fetch(FOOD.fetchRequest())
}
catch
{
print("did not fetch")}
}
tableView.reloadData()}
然而,这样做是行不通的,因为
indexPath
不能接受数组类型。
我该怎么做?
let FRUIT = fruit[indexPath.row]; if editingStyle == .delete && FRUIT != "Kiwi" { /* delete */ }
- Code Different