我有NSMutableDictionary
我希望删除并在code
值等于deletecode
的内部刷新我的tableview。
我该怎么办? ,我的代码如下。
var myCells = [NSMutableDictionary]()
myCells = [["isExpanded" : false,
"isVisible" : true,
"additionalRows" : 7,
"code" : "Flex1"
],
[ "isExpanded" : false,
"isVisible" : true,
"additionalRows" : 7,
"code" : "Flex3"
],
[ "isExpanded" : false,
"isVisible" : true,
"additionalRows" : 7,
"code" : "Flex4"
]]
let deletecode = "Flex1"
if let indexOfA = myCells.flatMap({$0["\(deletecode))"]}).last {
self.tableView.beginUpdates()
self.myCells.remove(at: indexOfA as! Int)
self.tableView.endUpdates()
self.tableView.reloadData()
}
我的代码第2部分
myCells = myCells.filter { (element) -> Bool in
if let code = element["additionalRows"] as? String {
if code != "7" {
}else {
let fetchRequestf = NSFetchRequest<NSFetchRequestResult>(entityName:"Match")
let predicatek = NSPredicate (format:"code = %@",(element["code"] as? String)!)
fetchRequestf.predicate = predicatek
do {
let getSett = try context.fetch(fetchRequestf) as! [Match]
if (getSett.count > 0) {
if (getSett[0].show == false){
let deletecode = getSett[0].code
self.tableView.beginUpdates()
myCells = myCells.filter { (element) -> Bool in
if let code = element["code"] as? String {
return code != deletecode
}
return true
}
self.tableView.endUpdates()
self.tableView.reloadData()
}
}
} catch let error as NSError {
print(error)
}
}
}
return true
}
答案 0 :(得分:1)
你可以简单地filter
你的阵列:
myCells = myCells.filter { (element) -> Bool in
if let code = element["code"] as? String {
return code != deletecode
}
return true
}
self.tableView.reloadData()
答案 1 :(得分:0)
第一行是不必要的 - 你可以改为写
var myCells = [items]
当您将数组创建为 var 时,它将是可变的。
取代 flatMap ,使用索引(of :)
您的代码可能如下所示:
myCells.index{$0["code"] == "Flex4"}