أين تضع التعليمات البرمجية المشتركة لـ iPhone ، CllocationManager

StackOverflow https://stackoverflow.com/questions/4016937

  •  26-09-2019
  •  | 
  •  

سؤال

إذا كان لديّ تطبيق شريط علامات تبويب ، وخطط لاستخدام الموقع الأساسي في علامات تبويب مختلفة ، هل هناك مكان مشترك جيد لوضع الكود المستخدم في تخصيص/init the cllocationManager ، والحصول على التحديثات بمجرد أن يتم استدعاء startupdatinglocation؟ أو إذا تم استخدامه في علامات تبويب مختلفة ، فهل أضعه في الكود لكل علامة تبويب؟ فقط أتساءل ما هي أفضل الممارسات لأنني جديد في البرمجة. شكرًا.

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

المحلول

إذا لاحظت أنك تكرر ما كتبته ، أو تواجه رمز الكتابة الموجود ، فكر في إنشاء واجهة (كائن ، وظائف ، إلخ) للتعامل مع هذه المهام.

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

فيما يلي بعض الإرشادات عالية المستوى:

  • لا تضع الميزات الخاصة بالتطبيق في واجهة مشتركة (بدلاً من ذلك ، استخدم فئة فرعية مشتركة بين المشروعين)

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

  • استخدم التأكيدات لضمان استخدامها للواجهة على النحو المقصود ، تحقق من كل وسيطة ، شرط مسبق/ما بعد الشرط ، حالة كائنك ، إلخ ..

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

  • تجنب الرغبة في استخدام المفردات والبيانات الثابتة ؛ هناك دائمًا طريقة أفضل تقريبًا حتى لو كان الأمر بسيطًا مثل إجبار العملاء على إنشاء مثيل لفصلك.

  • قم بإنشاء مكتبات بهذه الواجهات ، وقم بتقسيمها منطقياً.

الآن هذا مغطى ...

سأبدأ باستخدام مثيلات (محتملة متعددة) من الكائنات التي ستحتاجها. لا يوجد شيء في الوثائق التي تنص "يجب ألا تنشئ مثيلات متعددة من الكائن".

إذا كان هذا غير كافٍ في التنميط ، من ثم فكر في استخدام كائن مشترك ينقل الرسائل إلى الكائنات (في التطبيق الخاص بك) الذي يحتاج إلى تحديثات.

الأساس المنطقي: هناك احتمالات ، لقد قمت بالفعل بتحسين تطبيق Apple ، لذلك ليس عليك ذلك.

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

نصائح أخرى

أنا لا أتفق مع جون ، فإن AppDelegate هي الطريقة "السهلة" للقيام بذلك ، ولكن ليس أفضل دائمًا.

سأفعل هذا مع المفرد. يمكنك إلقاء نظرة على مقالة مات غالاغر المفرد ، AppDelegates و DATES من المستوى الأعلى كمرجع.

مندوب التطبيق مكانًا مركزيًا جيدًا لمثل هذه البيانات. يمكنك دائمًا الوصول إلى مندوب التطبيق [[UIApplication sharedApplication] delegate]

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