Si y no. Es cierto que tener id x
designa x como un puntero, pero decir que se aplican las reglas de conversión de tipo de puntero es incorrecto, porque "id" tiene reglas de conversión de tipo especiales. Por ejemplo, con un void *
puntero no puede hacer esto:
void *x;
char *y = x; // error, this needs an explicit cast
Por el contrario, es posible con id:
id x;
NSString *y = x;
Ver más uso de id de tipo en ejemplos de objetivo c .
Además, en el "moderno" Objective C se prefiere usar en instancetype
lugar de "id" en los métodos "init". Incluso hay una herramienta de conversión automática en Xcode para cambiar eso. Lea sobre instancetype: ¿Sería beneficioso comenzar a usar instancetype en lugar de id?
void*