获取数组中项的索引的最有效方法是什么?在Objective-C中,我们曾经能够做到:
[arrayName indexOfObject:myObject]
Run Code Online (Sandbox Code Playgroud)
在Swift中,我知道我们可以做到以下几点.
index =arrayName.indexOf({$0 === myObject})
Run Code Online (Sandbox Code Playgroud)
这是最干净,最有效的方法吗?
Emi*_*aez 11
正如奥利弗指出的那样,你可以使用
let index = array.indexOf(myObject)
Run Code Online (Sandbox Code Playgroud)
但是,这仅在您的对象符合Equatable
协议时才有效,为了符合它,您必须实现该==
功能,如下所示:
class MyClass {
}
extension MyClass: Equatable { }
func ==(lhs: MyClass, rhs: MyClass) -> Bool {
return lhs === rhs // === returns true when both references point to the same object
}
Run Code Online (Sandbox Code Playgroud)
如果您的类继承自NSObject
和你比较不只是比较指针其他的东西,你就必须重写isEqual:
以及
override func isEqual(object: AnyObject?) -> Bool {
guard let obj = object as? MyClass else { return false }
return self == obj
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15920 次 |
最近记录: |