如何在swift 3中查找数组包含字典的数组的索引?

时间:2016-11-24 12:31:04

标签: ios arrays swift3

如果我将数组定义为这意味着

var tempArray = [String]()
tempArray = ["Hai", "Hello", "How are you?"]
let indx = tempArray.index(of:"Hai")

有一个选项

  

指数(组成:)

找到索引,但如果我这样定义意味着

var tempArray = [AnyObject]() 
//or 
var tempArray = [[String:AnyObject]]()() 

找不到索引

的选项

1 个答案:

答案 0 :(得分:2)

在Swift.swift中你可以看到这个声明:

extension Collection where Iterator.Element : Equatable {
    public func index(of element: Self.Iterator.Element) -> Self.Index?
}

此方法仅适用于具有Equatable元素的数组; AnyObject不符合Equatable

编辑:

但是,你可以这样找你的元素:

    var tempArray = [AnyObject]()
    for item in tempArray {
       if let typedItem = item as? SomeYourType {
          if typedItem == searchItem {

          }
       }
    }

编辑:

删除你可以使用这样的东西(未经测试):

someArr.filter({object in guard let typedObject = (object as? YourType) else {return true}; return typedObject != yourObject })