objective objective-c cocoa search nsmutablearray nsarray

objective c - objective - ¿Cómo determinar un índice de matriz en el Objetivo C?



nsarray objective c (3)

Tengo dos matrices en Objective C y necesito encontrar qué índice es para poder insertarlo en el mismo lugar. Por ejemplo, digamos que tengo un "conjunto de nombres" y un "conjunto de edades". ¿Cómo averiguo qué índice "charlie" está en la "matriz de nombres", así que sé dónde insertar su edad en la matriz de "edad"?

Gracias


En Cocoa, las matrices paralelas son un camino hacia la perdición y la ruina. No puede usarlos eficazmente con Vinculaciones, por lo que tendrá que escribir una gran cantidad de código de pegamento, como si no existieran Enlaces. Además, estás eliminando cualquier soporte futuro de AppleScript / Scripting Bridge que puedas tener antes incluso de comenzar a implementarlo.

La forma correcta es crear una clase de modelo con propiedades de name y age , y tener una única matriz de instancias de esa clase. Luego, para buscar un elemento por nombre o por antigüedad, use NSPredicate para filtrar la matriz e indexOfObjectIdenticalTo: para encontrar el índice de cada elemento de la matriz filtrada en la matriz principal.

La diferencia entre indexOfObject: y indexOfObjectIdenticalTo: es que el primero enviará isEqual: mensajes para determinar si cada objeto es el que está buscando, mientras que el último solo buscará el objeto específico que pasó. Por lo tanto, puede usar indexOfObject: con un objeto que no está en la matriz pero que es igual a uno, para encontrar el objeto igual en la matriz.


También es posible que desee utilizar un NSDictionary, también, si realiza búsquedas basadas en cadenas.