ما هو الغرض من – AttachmentDidDisconnect:الطريقة داخل EAAccessoryDelegate؟
-
13-12-2019 - |
سؤال
لقد كنت أعمل على تنفيذ نظام التشغيل iOS الذي يتصل بالأجهزة، وبالتالي، يتعين علي الاستفادة من إطار عمل الملحقات الخارجية.من أجل التفاعل مع الأجهزة، يجب أن يكون لديك فصل يتعامل مع التواصل EAAccessory
أشياء.للقيام بذلك، يجب عليك تحديد فئة اتصال جهازك باستخدام ملف EAAccessoryDelegate
بروتوكول.
ال EAAccessoryDelegate
يحتوي البروتوكول على طريقة واحدة--
– accessoryDidDisconnect:(EAAccessory *)accessory
.
تنص وثائق Apple على ما يلي:
ال
EAAccessoryDelegate
يحدد البروتوكول طريقة واحدة لتلقي الإخطارات عندما يرتبطEAAccessory
تم قطع اتصال الكائن.تنفيذ هذه الطريقة اختياري.
عندما تقوم بإنشاء مثيل لفصلك، يمكنك تسجيل الأساليب الخاصة بك باستخدام ملف NSNotificationCenter
نظام.عندما يكون هناك حدث اتصال الجهاز أو قطع اتصال الجهاز، يمكنك التعامل مع الحدث كما تريد.عند وقوع حدث قطع اتصال الجهاز، يكون الغرض من - accessoryDidDisconnect:
أصبح عديم الفائدة لأنه يوفر نفس الوظائف والبيانات بالضبط لفصلك.
علاوة على ذلك، فإن أي مثال يمكنني العثور عليه فيما يتعلق بالعمل مع إطار عمل الملحقات الخارجية يقدم أمثلة على اكتشاف تغييرات اتصال الجهاز عبر NSNotificationCenter
آلية الاشتراك.
ومع هذا قال ما هو المغزى من – accessoryDidDisconnect:
الطريقة عندما لا يتم استخدامها أبدًا؟نعم، يمكن تنفيذه ولكن كما ذكرت، توصي جميع أشكال الوثائق بإدارة هذه الأنواع من تغييرات الاتصال من خلال NSNotificationCenter
.
أعلم أن هذا سؤال صعب الإرضاء ولكني أشعر بالفضول الشديد.
المحلول
يعد هذا نمط تصميم شائع جدًا لدى Apple، لتوفير اختصار لإشعارات NSNotificationCenter الشائعة جدًا.في نظام التشغيل OS X، يقومون بذلك باستخدام الكثير من إشعارات NSWindow، ويمررون محتويات NSNotification في تلك الحالات.
إنها في الأساس طريقة سهلة لتنفيذ الإشعار دون الحاجة إلى التأكد من إضافة المراقب وإزالته.
على وجه الخصوص، يتم استخدام هذا فقط بعد إنشاء كائن EAAccessory (والذي يحدث فقط بعد توصيل الملحق) وبالتالي، لن يكون استخدام طريقة الاتصال قابلاً للتطبيق في الوقت الحالي.