हां और ना। यह सच है कि id xएक्स को एक पॉइंटर के रूप में नामित किया गया है, लेकिन यह कहना कि पॉइंटर टाइप रूपांतरण नियम लागू करना गलत है, क्योंकि "आईडी" में विशेष प्रकार के रूपांतरण नियम हैं। उदाहरण के लिए, एक void *पॉइंटर के साथ आप ऐसा नहीं कर सकते:
void *x;
char *y = x; // error, this needs an explicit cast
इसके विपरीत, यह आईडी के साथ संभव है:
id x;
NSString *y = x;
ऑब्जेक्टिव c उदाहरणों में टाइप आईडी का अधिक उपयोग देखें ।
"आधुनिक" ऑब्जेक्टिव C के अलावा instancetype"init" विधियों पर "id" के बजाय इसका उपयोग करना पसंद किया जाता है। इसे बदलने के लिए Xcode में एक स्वचालित रूपांतरण उपकरण भी है। इंस्टेंटाइप के बारे में पढ़ें: क्या आईडी के बजाय इंस्टेंटाइप का उपयोग शुरू करना फायदेमंद होगा?
void*