2010-07-02 5 views

risposta

69

indexOfObjectIdenticalTo assegni per lo stesso identico id (stesso indirizzo). indexOfObject controlla che isEqual: restituisca YES.

+1

Si noti inoltre che ' indexOfObjectIdenticalTo: 'sono molti ordini di grandezza più veloci di' indexOfObject: '. Sebbene nessuno dei due sia particolarmente veloce. Se vuoi prestazioni elevate dovresti considerare l'uso di 'NSSet' –

18

Il primo utilizza isEqual: per trovare un oggetto corrispondente, mentre il secondo cerca lo stesso oggetto (ad esempio, l'oggetto nella stessa posizione di memoria).

+0

Bella spiegazione. – Sagar

+0

Un modo per utilizzarlo è EqualToString: invece? –

+1

@SantaClaus: lo fa già. 'isEqual:' e 'isEqualToString:' si comportano in modo identico quando si passa un 'NSString *'. Le uniche differenze tra i due sono un leggero vantaggio prestazionale e il controllo di tipo statico fornito da 'isEqualToString:', che è irrilevante nel contesto di 'indexOfObject: '. –

2

indexOfObjectIdenticalTo è molto più veloce rispetto indexOfObject ma utilizza confronto puntatore == invece di chiamare isEqual:

Se siete alla ricerca di una corrispondenza puntatore, utilizzare sempre indexOfObjectIdenticalTo per ottenere le massime prestazioni

Problemi correlati