2010-12-15 12 views
9

मैं थोड़ी देर के लिए उद्देश्य-सी का उपयोग कर रहा हूं, लेकिन सभी स्ट्रिंग्स से पहले @ प्रतीक का उद्देश्य कभी नहीं समझा है। उदाहरण के लिए, क्यों करते हैं तो आप इस तरह की स्ट्रिंग घोषित करने के लिए है:तारों से पहले @ प्रतीक का उद्देश्य?

NSString *string = @"This is a string"; 

और नहीं यह पसंद:

NSString *anotherString = "This is another string"; 

के रूप में आप जावा या बहुत से अन्य प्रोग्रामिंग भाषाओं में है। क्या कोई अच्छा कारण है?

+3

देखें [@ प्रतीक उद्देश्य-सी में क्या दर्शाता है? ] (http://stackoverflow.com/questions/25749/what-does-the-symbol-represent-in-objective-c)। –

+0

यह समझ में आता है। धन्यवाद! – Jumhyn

उत्तर

12

यह एक NSString (बजाय एक मानक सी स्ट्रिंग)

एक NSString एक वस्तु है कि एक यूनिकोड स्ट्रिंग संग्रहीत करता है और विधि के एक समूह के अनुकुल परिवर्तन के साथ सहायता के लिए प्रदान करता है को दर्शाता है।

एक सी स्ट्रिंग केवल अक्षरों (बाइट्स) का एक \ 0 समाप्त गुच्छा है।

संपादित करें: और अच्छा कारण यह है कि उद्देश्य-सी सी के शीर्ष पर बनाता है, सी भाषा संरचनाओं को अभी भी उपलब्ध होना आवश्यक है। @ "" एक उद्देश्य-सी केवल विस्तार है।

+0

मुझे अब मिल गया है। धन्यवाद! – Jumhyn

+4

जब आप ओबीजेसी में किसी चीज़ के सामने @ देखते हैं, तो यह एक अच्छा संकेत है कि यह विस्तार का हिस्सा है ओबीजेसी सी @interface, @implementation, @protocol, @selector, @class, आदि @ को बनाता है। अनौपचारिक उद्देश्य-सी नामस्थान। यह इसी तरह है कि कैसे कोको में सबकुछ 'एनएस' के साथ उपसर्ग किया गया है ताकि यह अन्य सामानों के साथ संघर्ष न करे। – Ken

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