سؤال

أنا أتعلم الهدف-c والحفاظ على نتصادم الرمز@.يتم استخدامه في سيناريوهات مختلفة ، على سبيل المثال في بداية سلسلة أو إسنادها accessor الأساليب.

ماذا يعني الرمز @ يعني في الهدف c ؟

هل كانت مفيدة؟

المحلول

على @ حرف لا يستخدم في C أو C++ معرفات حتى انها تستخدم لإدخال اللغة الهدف-C الكلمات الرئيسية في الطريقة التي لن تتعارض مع اللغات الأخرى' الكلمات الرئيسية.وهذا يتيح "الهدف" جزءا من اللغة بحرية تختلط مع C أو C++ الجزء.

وهكذا مع استثناءات قليلة جدا ، في أي وقت ترى @ في بعض الهدف-C, كنت تبحث في الهدف-C يبني بدلا من C أو C++ بنيات.

الرئيسية استثناءات id, Class, nil, ، Nil, والتي عادة ما تعامل على أنها لغة الكلمات على الرغم من أنها قد يكون لها أيضا typedef أو #define وراءها.على سبيل المثال, المترجم في الواقع لا علاج id خاصة من حيث نوع مؤشر تحويل القواعد التي تنطبق على الإعلانات ، وكذلك إلى قرار سواء لتوليد GC كتابة الحواجز.

استثناءات أخرى هي in, out, inout, oneway, byref, ، bycopy;هم فئة تخزين الشروح على طريقة المعلمة والعودة أنواع لجعل توزيع الكائنات أكثر كفاءة.(فإنها تصبح جزء من طريقة التوقيع متاح من وقت التشغيل التي يمكن أن ننظر إلى تحديد كيفية تسلسل المعاملة.) هناك أيضا سمات داخل @property الإعلانات copy, retain, assign, readonly, readwrite, nonatomic, getter, ، setter;تلك صالحة فقط داخل القسم السمة من @property إعلان.

نصائح أخرى

من الهدف-C التعليمي:الرمز @ , السبب هو في الجزء الأمامي من كلمات مختلفة:

باستخدام @ ينبغي أن تجعل من الأسهل إلى الترباس الهدف-ج مترجم على القائمة ج مترجم.لأن @ غير صالح في أي سياق في ج باستثناء سلسلة حرفية ، tokenizer (في وقت مبكر خطوة بسيطة في المترجم) يمكن تعديلها ببساطة ابحث عن @ حرف خارج سلسلة ثابتة (على tokenizer يفهم سلسلة حرفية ، لذلك هو في وضع يمكنها من التمييز بين هذا).عندما @ هو واجه tokenizer من شأنه أن يضع بقية مترجم في "الهدف-C الوضعية." (الهدف-C محلل ستكون مسؤولة عن إعادة مترجم إلى المنتظم ج الوضعية عندما يكشف نهاية الهدف-C).

أيضا عندما رأيت أمام سلسلة حرفية ، فإنه يجعل NSString بدلا من 'char *' في C.

من Macrumors:الهدف-C التعليمي, في سلسلة حرفية:

هناك أيضا @"" NSString حرفية.هو أساسا اختزال NSString هو +stringWithUTF8String الأسلوب.

على @ يضيف أيضا دعم يونيكود ج السلاسل.

من دليل:

الهدف-C الأطر عادة لا تستخدم ج-أسلوب السلاسل.بدلا من ذلك ، أنها تمر السلاسل حول NSString الكائنات.

على NSString الدرجة يوفر كائن المجمع يحتوي على كافة سلاسل من المزايا التي تتوقعها ، بما في ذلك المدمج في الذاكرة إدارة لتخزين التعسفي طول سلاسل دعم يونيكود ، printf-نمط تنسيق المرافق العامة ، وأكثر من ذلك.لأن مثل هذه السلاسل تستخدم عادة على الرغم من الهدف-C يوفر الرموز المختزلة خلق NSString الكائنات من القيم الثابتة.لاستخدام هذا الاختزال ، كل ما عليك القيام به هو تسبق العادي ، انقر نقرا مزدوجا سلسلة مقتبسة مع الرمز @ ، كما هو مبين في الأمثلة التالية:

NSString *myString = @"My String\n";
NSString *anotherString = [NSString stringWithFormat:@"%d %@", 1, @"String"];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top