Oui et non. Il est vrai qu'avoir id xdésigne x comme pointeur, mais dire que les règles de conversion de type pointeur s'appliquent est faux, car "id" a des règles de conversion de type spéciales. Par exemple, avec un void *pointeur, vous ne pouvez pas faire ceci:
void *x;
char *y = x; // error, this needs an explicit cast
Au contraire, c'est possible avec id:
id x;
NSString *y = x;
Voir plus d'utilisation de type id dans les exemples de l'objectif c .
De plus, dans l'Objectif C "moderne", il est préférable d'utiliser à la instancetypeplace de "id" les méthodes "init". Il existe même un outil de conversion automatique dans Xcode pour changer cela. En savoir plus sur instancetype: Serait-il avantageux de commencer à utiliser instancetype au lieu d'id?
void*