Pergunta

Eu tenho duas matrizes em Objective C e eu preciso encontrar o índice de alguma coisa é para que eu possa inseri-lo no mesmo lugar. Por exemplo, digamos que eu tenho um "array name" e um "array idade". Como faço para descobrir o que index "charlie" está no "array nome" então eu sei onde inserir sua idade na matriz "idade"?

Graças

Foi útil?

Solução

-[NSArray indexOfObject:] parece ser a escolha lógica

Outras dicas

Em Cacau, matrizes paralelas são um caminho para a desgraça e ruína. Você não pode usá-los de forma eficaz com ligações, assim você terá que escrever um monte de código de cola em vez disso, como se ligações não existia. Além disso, você está matando fora de todo o futuro apoio Ponte AppleScript / Scripting você pode ter a intenção de ter antes mesmo de começar a implementá-lo.

A maneira correta é criar uma classe de modelo com name e age propriedades, e têm uma única matriz de instâncias dessa classe. Em seguida, para encontrar um item de nome ou idade, utilização NSPredicate para filtrar a matriz, e indexOfObjectIdenticalTo: para encontrar o índice de cada item da matriz filtrada na matriz principal.

A diferença entre indexOfObject: e indexOfObjectIdenticalTo: é que o primeiro irá enviar mensagens isEqual: para determinar se cada objeto é o que está procurando, enquanto que a última vontade só olhar para o objeto específico que você passado. Assim, você pode usar indexOfObject: com um objeto que não está na matriz, mas é igual a um que seja, a fim de encontrar o objeto igual na matriz.

Você pode apenas querer usar um NSDictionary, também, se você está fazendo pesquisas com base em strings.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top