Colección de citas famosas - Slogan de motivación - Comparación entre iOS "====" y "isEqual"

Comparación entre iOS "====" y "isEqual"

Registro simple:

Hay dos formas de determinar si dos variables son iguales en Objective-C. Una es comparar directamente con "==" y la otra es el método "isEqual". La siguiente es su introducción:

1. Método "==":

Cuando == se utiliza para determinar si dos variables son iguales, si son variables de tipo básico y ambas lo son. tipo numérico (los tipos pueden ser diferentes), devuelve verdadero siempre que los valores sean iguales

Si dos variables de tipo puntero (como objetos OC) deben tener la misma dirección de memoria para devolver verdadero, y si este método se utiliza para juzgar dos Para variables de puntero sin relación de herencia, se generará una advertencia: comparación de diferentes tipos de puntero (xxxx y yyyy).

2. Método "isEqual":

Este método es un método de instancia proporcionado por la clase NSObject, por lo que todas las variables de puntero pueden llamar a este método para determinar si es igual a otro puntero. variables. Sin embargo, este método no es diferente del símbolo "==". También requiere que dos variables de puntero apunten al mismo objeto para devolver verdadero. Por lo tanto, en realidad no tiene mucho sentido que esta clase NSObject proporcione un método de instancia de "isEqual".

Pero lo que hay que mencionar en particular es que NSString anula el método "isEqual" de NSObject. El criterio de juicio ya no es que las direcciones de memoria guardadas por las dos variables de puntero sean las mismas y se devuelva verdadero, sino que siempre que las dos cadenas contengan la misma secuencia de caracteres, se devuelva verdadero; de lo contrario, se devuelva falso.