【发布时间】:2015-01-06 23:23:14
【问题描述】:
我正在使用 switch 语句来 1) 切换复选标记和 2) 将谓词添加/删除到谓词数组。如果我知道它的名称,但不知道它在数组中的索引,有没有办法删除它?如果没有,解决方法是什么?这是我的代码的相关部分。
var colorPredicates: [NSPredicate?] = []
// Switch statement
case blueCell:
if (cell.accessoryType == .None) {
colorPredicates.append(bluePredicate)
cell.accessoryType = .Checkmark
println(colorPredicates) // debug code to see what's in there
} else {
let deleteIndex = find(colorPredicates, bluePredicate) // error: NSPredicate doesn't conform to Equatable.
muscleGroupPredicates.removeAtIndex(deleteIndex)
cell.accessoryType = .None
}
default:
println("default case")
【问题讨论】:
-
找到对象,然后将其移除。如果要删除多个,请向后索引。不需要花哨的代码。
-
怎么样?这是我的问题。
-
你知道如何使用循环吗?还有
if声明? -
是的。我想我需要一行代码将其从索引中删除。我将向数组中添加几项内容(switch 语句将包含 20 个左右的 case),并且我知道数组中项的名称。我只是想弄清楚如何在不确定的索引处查找已知项目,如果在界面上切换复选标记,则将其删除。我在 else 语句中尝试了 'let deleteIndex = find(colorPredicates, bluePredicate)' 并在 'removeAtIndex: deleteIndex' 中使用,但它不起作用。
标签: arrays core-data ios8 xcode6 nspredicate