سؤال

لقد قمت للتو بتنفيذ IADS في التطبيق مع العديد من المتميزة UIViewControllers. لدي أساليب المندوب في كل واحدة - (void)bannerViewDidLoadAd:(ADBannerView *)banner و - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error التي تظهر وإخفاء اللافتة ، جنبا إلى جنب مع طريقة الإعداد التي تنشئ لافتة أثناء viewDidLoad.

لقد فعلت هذا من خلال جعل كل شيء يعمل في الأول UIViewController ثم نسخ الكود إلى كل من وحدات التحكم الأخرى ، جنبا إلى جنب مع ivar التصريحات ، الخصائص ، إلخ ...

هذا لا يمكن أن يكون صحيحا. في كل مرة أقوم بتغيير واحدة ، لا بد لي من تغييرها جميعًا. سؤالي (أخيرًا!) هو: هل هناك طريقة لكتابة هذه الأساليب مرة واحدة حتى تتمكن جميع الفئات من الوصول إليها؟

شكرًا!

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

المحلول

أوصي بإنشاء وظيفة التيار المتردد إذا لم يكن التصنيف الفرعي منطقيًا.

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

إذا كانت هذه الوظيفة مستقلة ومخصصة لتطبيق/مشروع واحد ، فما عليك سوى إنشاء ملف يعلن كل هذه البتات الفردية (إذا كان يجب إعادة استخدامها عبر ترجمات متعددة). إذا كان ملف البتات كبيرًا حقًا ، فمن المحتمل أن يكون هناك عدد قليل من مشكلات التصميم.

قد يوصي بعض الأشخاص طريقة مثيل فئة OBJC. أتجنب الفئات عمومًا لأن فرصة الخطأ مرتفعة بشكل غير ضروري. يتم ربط وظائف/أنواع C و C ++ وتجريدها بسهولة إذا لم تتم الرجوع إليها. من خلال فئة ، لا ترتبط ، ويجب ألا يتم تجريد الرموز المستخدمة في الطريقة.

يمكنك تضمين هذا كطريقة مثيل لـ Singleton الخاص بك ، إذا كان الاثنان مرتبطين بشكل مفاهيمي (أو جسديًا). خلاف ذلك ، أوصي بإبقائهم منفصلين.

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