Nel cacao, gli array paralleli sono un percorso di distruzione e rovina. Non è possibile utilizzarli in modo efficace con Bindings, quindi dovrai scrivere molto codice di colla, come se i binding non esistessero. Inoltre, stai eliminando qualsiasi futuro supporto AppleScript/scripting bridge che potresti voler avere prima ancora di iniziare a implementarlo.
Il modo corretto consiste nel creare una classe del modello con le proprietà name
e age
e disporre di una singola matrice di istanze di tale classe. Quindi, per trovare un elemento per nome o per età, utilizzare NSPredicate
per filtrare l'array e indexOfObjectIdenticalTo:
per trovare l'indice di ciascun elemento dall'array filtrato nell'array principale.
La differenza tra indexOfObject:
e indexOfObjectIdenticalTo:
è che il primo invierà isEqual:
messaggi per determinare se ogni oggetto è quello che sta cercando, mentre il secondo sarà cercare solo per l'oggetto specifico avete passato. In questo modo, è possibile utilizzare indexOfObject:
con un oggetto che non è nella matrice ma è uguale a uno che è, al fine di trovare l'oggetto uguale nella matrice.
fonte
2009-07-16 08:54:28
Sì, sarebbe chuck, grazie non ho potuto trovare che nel riferimento alla classe NSMutableArray. – Xcoder
Sì, i documenti NSMutableArray contengono solo metodi che hanno a che fare con gli array mutanti. Vale sempre la pena di controllare anche i documenti della superclasse. – Chuck
I documenti rendono facile dimenticare di controllare metodi ereditati, ivars e proprietà. Procurati una copia dell'app AppKiDo di Andy Lee e sarà più facile vedere cosa potresti perdere. Alcune classi sono più facili da capire quando le vedi sotto una nuova luce. – uchuugaka