سؤال

سؤالين:

هذا الرمز

#ifdef __IPHONE_3_0
    // iPhone 3.0 specific stuff
#else
    // iPhone 2.2 specific stuff
#endif

يجمع رموز محددة لإصدارات محددة من iPhone. كيف يمكن تحويل هذا إلى ترجمة لمجموعة من الأجهزة؟ على سبيل المثال: إذا كان إصدار iPhone <3.1 أو إذا كان الإصدار> = 3.2، وهكذا ...

2) أين يمكنني الحصول على قائمة من جميع الشرطيات المسموح بها بواسطة Xcode؟

شكرا على اي مساعدة.

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

المحلول

تم العثور على تلك المعرفة في Availability.h, يقع داخل كل ما تستخدمه SDK. على سبيل المثال، يمكنك العثور على نسخة للمحاكاة 3.0 في

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/include/Availability.h

كملاحظة، من السهل البحث عن الثوابت __IPHONE_3_0 من خلال إبرازها، انقر بزر الماوس الأيمن، واختيار "الانتقال إلى التعريف" من القائمة المنبثقة.

في Availability.h, ، يصف الرأس نفسه بالتفصيل كيفية ترجمة بشكل انتقائي للإصدارات المختلفة. على سبيل المثال، لتجميع التعليمات البرمجية فقط إذا كان إصدار iPhone OS أكبر من 3.0، يمكنك استخدامه

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_0
// Your code here
#endif

لاحظ أن هذا لتحديد ما يجب تضمينه في وقت الترجمة، وليس لتمكين التعليمات البرمجية بشكل انتقائي بناء على إصدار نظام التشغيل الذي يعمل عليه التطبيق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top