سؤال

وأعتقد أن يعرف ما يفعل التطبيق مندوب. لديه بعض طرق جميلة مثل -applicationDidFinishLaunching التي سوف يتم استدعاؤها عند الانتهاء من التطبيق إطلاق، وهلم جرا. ولكن ما هو هذا الواقع؟ هو أن بعض وجوه مثيل في وظيفة UIApplicationMain؟

وكيف يعمل أن كل فئة في تطبيقي لديه حق الوصول إلى هذا الكائن التطبيقات مندوب؟ هل هناك أي رسم بياني جيد على شبكة الانترنت أن يتصور هذه العلاقات؟

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

المحلول

في الكاكاو، المندوب هو كائن أن يرجئ كائن آخر على مسائل السلوك ويبلغ عن التغيرات في حالته. على سبيل المثال، UITableViewDelegate المسؤولة عن الإجابة على أسئلة حول الكيفية التي ينبغي أن UITableView التصرف عند إجراء التحديدات أو إعادة ترتيب الصفوف. هو الكائن الذي UITableView يسأل عندما يريد أن يعرف كيف ينبغي أن ترتفع صف معين. في نموذج الموديل عرض المراقب المالي، والمندوبين وحدات تحكم، وأسماء العديد من المندوبين تنتهي في "المراقب".

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

ووUIApplicationDelegate غير متوفر بدقة من كل مكان في التطبيق. وUIApplication المفرد هو ([UIApplication sharedApplication])، ومن خلالها يمكنك أن تجد مندوبها. ولكن هذا لا يعني أنه من المناسب لكل كائن في التطبيق للحديث مباشرة إلى المفوض التطبيق. بشكل عام، وتثبيط المطورين من وجود الأشياء العشوائية التحدث إلى مندوب التطبيق. معظم المشاكل التي يتم حلها بهذه الطريقة هي أفضل حل من خلال سنغلتونس، NSNotification، أو غيرها من الأشياء مندوب.

وأما بالنسبة لإنشائها، على ماك هناك شيء سحري عن مندوب التطبيق. انها مجرد كائن مثيل السلكية ومن قبل بنك الاستثمار القومي في معظم الحالات. على اي فون، إلا أن مندوب التطبيق يمكن أن يكون السحري قليلا إذا مثيل من قبل UIApplicationMain (). المعلمة الرابعة هي NSString يشير إلى فئة مندوب التطبيق، وUIApplicationMain () سيخلق واحدة وتعيينه مندوب sharedApplication. هذا يسمح لك لتعيين مندوب دون طرف مستدق (شيء من الصعب جدا على نظام التشغيل Mac). إذا كانت المعلمة الرابعة لUIApplicationMain () هو لا شيء (كما هو الحال في قوالب أبل)، ثم يتم إنشاء مندوب والسلكية من طرف مستدق الرئيسي، تماما مثل الإطار الرئيسي.

نصائح أخرى

ويتم إنشاء مثيل كائن في هذه الأزياء؛

ووالوظائف الرئيسية تبدو لمجموعة بنك الاستثمار القومي الرئيسي في info.plist. بنك الاستثمار القومي لديها مندوبا التطبيق الذي من المقرر أن بعض الطبقة التي يجب تنفيذ UIApplicationDelegates والأساليب المطلوبة. المندوب التطبيق ثم يقوم بتحميل بعض viewcontroller.

وسيكون هذا المشروع بمثابة كائن رد مستوى التطبيق للأحداث التي تؤثر على تطبيق كامل، مثل انخفاض الذاكرة، وما إلى ذلك.

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