2009-06-30 17 views
5

आपको कब और कब आपको * प्रतीक की आवश्यकता नहीं है (जो कि उद्देश्य-सी में है क्योंकि एनएसएसटींग जैसे सभी चर सूचक सूचक चर हैं)?पॉइंटर्स का उद्देश्य-सी उपयोग

उदाहरण के लिए आपको केवल "एनएसएसटींग" के बजाय "एनएसएसटींग *" करने की आवश्यकता है?

उत्तर

8

उद्देश्य-सी में, सभी ऑब्जेक्ट संदर्भ पॉइंटर्स हैं, इसलिए जब आप किसी ऑब्जेक्टिव-सी ऑब्जेक्ट के साथ घोषित करते हैं तो आपको हमेशा पॉइंटर ऑपरेटर की आवश्यकता होती है।

अन्य प्रकारों के लिए, उपयोग सी में समान है। पॉइंटर्स का उपयोग करें जब आप संदर्भ द्वारा डेटा संरचनाओं या आदिम प्रकारों को पास करना चाहते हैं।

+1

अपवाद "आईडी" प्रकार है, जो लगभग सी में शून्य * के बराबर है, और इसलिए स्टार को प्रकार में शामिल किया गया है। –

3

आप सभी उद्देश्य-सी वस्तुओं (जैसे NSDictionary, NSString, NSNumber) के लिए तारांकन का उपयोग करते हैं।

किसी भी प्रकार के लिए जो प्राचीन प्रकार (int, double, float) है, आपको तारांकन की आवश्यकता नहीं है। हालांकि, एनएस उपसर्ग का हमेशा यह मतलब नहीं है कि आपको तारांकन का उपयोग करना चाहिए। कोको कुछ संरचनाओं (जैसे एनएसआईएनटेगर, एनएसआरक्ट, एनएसपीओएन) को परिभाषित करता है जो कि आदिम प्रकारों पर आधारित होते हैं। आप यहां तारांकन का उपयोग नहीं करते हैं। उदाहरण के लिए, एक एनएसआरईटी, एक एनएसपीओटी और एनएसएसआईज की संरचना है, जिनमें से दोनों 2 सीजीफ्लैट्स (एक आदिम प्रकार) से बने होते हैं।

आप * नोटेशन का उपयोग करके इन आदिम प्रकारों या संरचनाओं में से किसी एक को पॉइंटर पास कर सकते हैं।

संबंधित मुद्दे