Iya dan tidak. Memang benar bahwa memiliki id x
menunjuk x sebagai pointer, tetapi mengatakan bahwa aturan konversi tipe pointer berlaku salah, karena "id" memiliki aturan konversi tipe khusus. Misalnya, dengan void *
penunjuk Anda tidak dapat melakukan ini:
void *x;
char *y = x; // error, this needs an explicit cast
Sebaliknya, itu mungkin dengan id:
id x;
NSString *y = x;
Lihat lebih banyak penggunaan tipe id dalam contoh tujuan c .
Sebagai tambahan dalam Objective C "modern", lebih disukai untuk menggunakan instancetype
metode "id" pada "init". Bahkan ada alat konversi otomatis di Xcode untuk mengubahnya. Baca tentang instancetype: Apakah bermanfaat untuk mulai menggunakan instancetype daripada id?
void*