Avatar ·

استبدال #ifdef في Swift: التجميع الشرطي وتكوينات البناء

مرحباً بالجميع! بدأت للتو في تعلم Swift بعد C++ وواجهت مشكلة. في C++، كنت أستخدم توجيهات المعالج الأولي `#ifdef` و `#ifndef` و `#endif` للتجميع الشرطي للكود — على سبيل المثال، لتضمين كود التصحيح فقط في بناء Debug أو دعم منصات مختلفة.\n\nفي Swift، لم أجد بديلاً مباشراً لـ `#ifdef`. حاولت كتابة شيء مثل:\n\n```swift\n#ifdef DEBUG\nprint("معلومات التصحيح")\n#endif\n```\n\nلكن Xcode يعطي خطأ. قرأت الوثائق — هناك `#if`، لكنه لا يعمل كما اعتدت. على سبيل المثال، أريد:\n\n1. إضافة تسجيل إضافي فقط في وضع Debug.\n2. استبعاد كتل كود كاملة لنظام iOS، ولكن الاحتفاظ بها لنظام macOS.\n3. إخفاء النماذج الاختبارية (stubs) في بناء الإصدار.\n\nكيف يمكن تنظيم التجميع الشرطي بشكل صحيح في Swift؟ هل هناك طريقة لتعريف أعلامي الخاصة، مثل `#define MY_FLAG`؟ سأكون ممتناً لأمثلة مع شرح.\n<<>>\n

التجميع الشرطي في Swift: #if وأعلام التجميع

\n

في Swift لا يوجد