如何从一个元组数组中find一个元组元素的索引? iOS,Swift

这是在tableview cellforrowatindexpath里面

var valueArray:[(String,String)] = [] if !contains(valueArray, v: (title,status)) { let v = (title,status) valueArray.append(v) } 

这是在didselectrowatIndexPath里面

  let cell = self.tableView.cellForRowAtIndexPath(selectedRow!) var newTuple = (cell!.textLabel!.text!, cell!.detailTextLabel!.text!) let index = valueArray.indexOf(newTuple) 

但我没有得到指数。 它是抛出一个错误不能转换types'(string,string)“的值为期望的参数types'@noescape((string,string))抛出 – >布尔'。 我在这里做错了什么?

元组可以比较是否相等(从Swift 2.2 / Xcode 7.3.1开始),但是它们不符合Equatable协议。 因此,您必须使用indexOf的基于谓词的变体来定位数组中的元组。 例:

 let valueArray = [("a", "b"), ("c", "d")] let tuple = ("c", "d") if let index = valueArray.indexOf({ $0 == tuple }) { print("found at index", index) } 

这是我的select查找元组索引

 var tuple: [(key: String, value: AnyObject)] = [("isSwap", true as AnyObject), ("price", 120 as AnyObject)] if let index = tuple.index(where: {($0.key == "price")}) { print(index) } //prints 1