¿Cuál es la diferencia entre isEqual:y isEqualToString:?
¿Por qué las clases agregan métodos isEqualTo * (isEqualToArray para NSArray, isEqualToData para NSData, ...) en lugar de simplemente anular isEqual:?
fuente
¿Cuál es la diferencia entre isEqual:y isEqualToString:?
¿Por qué las clases agregan métodos isEqualTo * (isEqualToArray para NSArray, isEqualToData para NSData, ...) en lugar de simplemente anular isEqual:?
isEqual:compara una cadena con un objeto y devolverá NOsi el objeto no es una cadena. isEqualToString:es más rápido si sabe que ambos objetos son cadenas, como dice la documentación :
Consideraciones Especiales
Cuando sabe que ambos objetos son cadenas, este método es una forma más rápida de verificar la igualdad que
isEqual:.
isEqualTo<Class>se utiliza para proporcionar controles específicos de igualdad. Por ejemplo; isEqualToArray:comprueba que las matrices contienen un número igual de objetos y que los objetos en un índice dado regresan YESpara la isEqual:prueba.
Además, para escribir sus propios métodos
-isEqual:y-isEqualTo<Class>:, la convención es permitir argumentos nulos-isEqual:y generar una excepción para argumentos nulos para-isEqualTo<Class>:fuente
Mi conjetura es que proporciona una ligera mejora en el rendimiento, como isEqualToString: no tendrá que escribir-cheque lo que pasó en.
fuente
Ampliando las respuestas de @Abizern y @Jonathan Dann, ambos
isEqualyisEqualToStringtrabajar connilvalores.fuente
Recomiendo altamente este . Los beneficios de rendimiento de isEqualToString son básicamente insignificantes para la mayoría de las aplicaciones. Pero hay otras dos distinciones que menciona el autor:
nilse manejafuente