如果我像这样定义数组

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

有一个选择

指数:)

找到索引,但是如果我这样定义的话
var tempArray = [AnyObject]()
//or
var tempArray = [[String:AnyObject]]()()

找不到索引

最佳答案

在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 })

关于ios - 如何在Swift 3中查找包含字典的Array的索引?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40786512/

10-09 16:38