Ios 替换阵列';Swift 3中的s indexOf(:)方法

Ios 替换阵列';Swift 3中的s indexOf(:)方法,ios,swift3,Ios,Swift3,在我的项目(用Swift 3编写)中,我想使用indexOf(:)方法(存在于Swift 2.2中)从数组中检索元素的索引,但我找不到任何替代方法 在Swift 3或任何类似的操作中,有没有合适的替代方法 更新 我忘了提到我想在自定义对象中搜索。在代码完成中,我在键入“indexof”时没有得到任何提示。但是当我尝试获取内置类型的索引时,比如Int代码完成,我可以使用index(of:)方法。indexOf(:)已重命名为index(of:),用于符合equalable的类型。您可以将任何类型与

在我的项目(用Swift 3编写)中,我想使用
indexOf(:)
方法(存在于Swift 2.2中)从数组中检索元素的索引,但我找不到任何替代方法

在Swift 3或任何类似的操作中,有没有合适的替代方法

更新

我忘了提到我想在自定义对象中搜索。在代码完成中,我在键入“indexof”时没有得到任何提示。但是当我尝试获取内置类型的索引时,比如
Int
代码完成,我可以使用
index(of:)
方法。

indexOf(:)
已重命名为
index(of:)
,用于符合
equalable
的类型。您可以将任何类型与
equalable
一致,这不仅仅适用于内置类型:

struct Point: Equatable {
    var x, y: Int
}

func == (left: Point, right: Point) -> Bool {
    return left.x == right.x && left.y == right.y
}

let points = [Point(x: 3, y: 5), Point(x: 7, y: 2), Point(x: 10, y: -4)]
points.index(of: Point(x: 7, y: 2)) // 1
接受闭包的
indexOf(:)
已重命名为
index(其中:)


直到我给我的班级打了一个A,我才在Swift 3 XCode 8中为我工作

例如:

class MyClass {
    var key: String?
}

extension MyClass: Equatable {
    static func == (lhs: MyClass, rhs: MyClass) -> Bool {
        return MyClass.key == MyClass.key
    }
}

这在Swift 3中对我有效,没有扩展:

struct MyClass: Equatable {
    let title: String

    public static func ==(lhs: MyClass, rhs: MyClass) -> Bool {
        return lhs.title == rhs.title
    }
}

索引(of:)
?不同的语法,相同的功能。建议:使用代码补全。你需要阅读此文档并将其添加到书签中:是的,我试过了。但是代码完成并没有显示自定义对象的
索引(of:)
方法。它仅显示内置类型。对象必须符合Equatable。我这里有一个例子:stackoverflow.com/a/32953118/2227743 equalable matters:)。
struct MyClass: Equatable {
    let title: String

    public static func ==(lhs: MyClass, rhs: MyClass) -> Bool {
        return lhs.title == rhs.title
    }
}