में @
चरित्र सी या सी ++ पहचानकर्ता में नहीं किया जाता है की तुलना में, तो यह प्रयोग किया जाता है बनाता है उद्देश्य-सी भाषा कीवर्ड को इस तरह से पेश करने के लिए जो अन्य भाषाओं के कीवर्ड के साथ संघर्ष नहीं करेगा। यह भाषा के "उद्देश्य" भाग को सी या सी ++ भाग के साथ स्वतंत्र रूप से अंतःक्रिया करने में सक्षम बनाता है।
इस प्रकार बहुत कम अपवादों के साथ, किसी भी समय आप कुछ उद्देश्य-सी कोड में @
देखते हैं, तो आप सी या सी ++ संरचनाओं के बजाय उद्देश्य-सी संरचनाओं को देख रहे हैं।
प्रमुख अपवाद id
, Class
, nil
, और Nil
है, जो आम तौर पर भाषा कीवर्ड के रूप में इलाज कर रहे हैं, भले ही वे यह भी एक typedef
या #define
उनके पीछे हो सकता है। उदाहरण के लिए, कंपाइलर वास्तव में id
का इलाज करता है, विशेष रूप से सूचक प्रकार रूपांतरण नियमों के संदर्भ में यह घोषणाओं पर लागू होता है, साथ ही साथ जीसी लेखन बाधा उत्पन्न करने के निर्णय के लिए भी।
अन्य अपवाद in
हैं, out
, inout
, oneway
, byref
, और bycopy
; इन्हें वितरित ऑब्जेक्ट्स को अधिक कुशल बनाने के लिए विधि पैरामीटर और रिटर्न प्रकारों पर स्टोरेज क्लास एनोटेशन के रूप में उपयोग किया जाता है। (वे विधि क्रम है, जो कर देख सकते हैं से उपलब्ध हस्ताक्षर का हिस्सा बन निर्धारित करने के लिए कैसे सबसे अच्छा एक सौदे को क्रमानुसार करने।) वहाँ भी @property
घोषणाओं, copy
, retain
, assign
, readonly
, readwrite
, nonatomic
, getter
भीतर गुण हैं , और setter
; वे केवल @property
घोषणा के विशेषता खंड में मान्य हैं।
स्रोत
2008-08-25 08:36:29
क्यों @ @interface और इससे पहले कि प्रयोग किया जाता है @ समाप्त? –