如果我像这样定义数组
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/