ما هو الغرض من – AttachmentDidDisconnect:الطريقة داخل EAAccessoryDelegate؟

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

سؤال

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

ال EAAccessoryDelegate يحتوي البروتوكول على طريقة واحدة--

– accessoryDidDisconnect:(EAAccessory *)accessory.

تنص وثائق Apple على ما يلي:

ال EAAccessoryDelegate يحدد البروتوكول طريقة واحدة لتلقي الإخطارات عندما يرتبط EAAccessory تم قطع اتصال الكائن.تنفيذ هذه الطريقة اختياري.

عندما تقوم بإنشاء مثيل لفصلك، يمكنك تسجيل الأساليب الخاصة بك باستخدام ملف NSNotificationCenter نظام.عندما يكون هناك حدث اتصال الجهاز أو قطع اتصال الجهاز، يمكنك التعامل مع الحدث كما تريد.عند وقوع حدث قطع اتصال الجهاز، يكون الغرض من - accessoryDidDisconnect: أصبح عديم الفائدة لأنه يوفر نفس الوظائف والبيانات بالضبط لفصلك.

علاوة على ذلك، فإن أي مثال يمكنني العثور عليه فيما يتعلق بالعمل مع إطار عمل الملحقات الخارجية يقدم أمثلة على اكتشاف تغييرات اتصال الجهاز عبر NSNotificationCenter آلية الاشتراك.

ومع هذا قال ما هو المغزى من – accessoryDidDisconnect: الطريقة عندما لا يتم استخدامها أبدًا؟نعم، يمكن تنفيذه ولكن كما ذكرت، توصي جميع أشكال الوثائق بإدارة هذه الأنواع من تغييرات الاتصال من خلال NSNotificationCenter.

أعلم أن هذا سؤال صعب الإرضاء ولكني أشعر بالفضول الشديد.

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

المحلول

يعد هذا نمط تصميم شائع جدًا لدى Apple، لتوفير اختصار لإشعارات NSNotificationCenter الشائعة جدًا.في نظام التشغيل OS X، يقومون بذلك باستخدام الكثير من إشعارات NSWindow، ويمررون محتويات NSNotification في تلك الحالات.

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

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

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