如果我将数组定义为这意味着
var tempArray = [String]()
tempArray = ["Hai", "Hello", "How are you?"]
let indx = tempArray.index(of:"Hai")
有一个选项
指数(组成:)
找到索引,但如果我这样定义意味着
var tempArray = [AnyObject]()
//or
var tempArray = [[String:AnyObject]]()()
找不到索引
的选项答案 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 })