sólo estaba haciendo una revisión de código y comenzó a preguntarse:si (auto = [súper init]) vs. if ((auto = [súper init]))
pensé if (self = [super init])
comprueba si la asignación de valor de retorno de [super init]
a la variable self
tuvo éxito o no (valor de operación). Por lo tanto, (self = nil)
sería realmente TRUE
.
pensé if ((self = [super init]))
cheques cuál es el valor de self
después de la asignación (valor de la variable). Por lo tanto, ((self = nil))
sería FALSE
.
¿Cuál es la forma correcta de utilizar para inicializar sus propias clases? La documentación de Apple usa la anterior (for example here), que estilo estoy usando ahora.
Gracias por aclarar lo que hace la expresión, ¡y por qué pensé que tenía que haber paréntesis adicionales! Ahora recuerdo tener tales advertencias de compilador en otros entornos y agregar segundos paréntesis (después de comprobar que la expresión realmente hizo lo que quería, por supuesto). – JOM