¿Cómo get el índice de un artículo en una matriz?

¿Cuál es la forma más eficiente de get el índice de un elemento en una matriz? En Objective-C solíamos poder hacer:

[arrayName indexOfObject:myObject] 

En Swift, sé que podemos hacer lo siguiente.

 index =arrayName.indexOf({$0 === myObject}) 

¿Es esta la forma más limpia y eficiente de hacerlo?

Como señaló Oliver, puedes usar

 let index = array.indexOf(myObject) 

Sin embargo, esto solo funcionará si su object cumple con el protocolo Equatable , para ajustarse a él, debe implementar la function == así:

 class MyClass { } extension MyClass: Equatable { } func ==(lhs: MyClass, rhs: MyClass) -> Bool { return lhs === rhs // === returns true when both references point to the same object } 

Si su class henetworkinga de NSObject y su comparación no es solo una comparación de pointers, tendrá que anular isEqual: también

 override func isEqual(object: AnyObject?) -> Bool { guard let obj = object as? MyClass else { return false } return self == obj } 

Puedes usar:

 let index = array.indexOf(myObject) 

No necesita usar el cierre porque indexOf acepta el elemento en sí mismo como un argumento

Tenga en count que el índice es opcional