Frage

Ich habe an einer iOS-Implementierung gearbeitet, die eine Verbindung zur Hardware herstellt, und muss daher das externe Zubehör-Framework verwenden.Um mit Geräten interagieren zu können, benötigen Sie eine Klasse, die die Kommunikation mit ihnen übernimmt EAAccessory Objekte.Dazu müssen Sie Ihre Gerätekonnektivitätsklasse mit definieren EAAccessoryDelegate Protokoll.

Der EAAccessoryDelegate Das Protokoll enthält eine Methode:

– accessoryDidDisconnect:(EAAccessory *)accessory.

In der Apple-Dokumentation heißt es:

Der EAAccessoryDelegate Protokoll definiert eine einzelne Methode zum Empfangen von Benachrichtigungen, wenn die zugehörigen EAAccessory Das Objekt ist nicht verbunden.Die Implementierung dieser Methode ist optional.

Wenn Sie Ihre Klasse instanziieren, können Sie Ihre eigenen Methoden bei registrieren NSNotificationCenter System.Wenn entweder ein Device Connect- oder Device Disconnect-Ereignis vorliegt, können Sie das Ereignis nach Ihren Wünschen behandeln.Wenn das Ereignis „Gerätetrennung“ auftritt, ist der Zweck des - accessoryDidDisconnect: wird sinnlos gemacht, da es Ihrer Klasse genau die gleichen Funktionen und Daten bietet.

Darüber hinaus enthält jedes Beispiel, das ich zur Arbeit mit dem External Accessories Framework finden kann, Beispiele für die Erkennung von Gerätekonnektivitätsänderungen über das NSNotificationCenter Abonnementmechanismus.

Nachdem dies gesagt ist, was ist der Sinn des – accessoryDidDisconnect: Methode, wenn sie nie wirklich verwendet wird?Ja, es kann implementiert werden, aber wie ich bereits erwähnt habe, empfehlen alle Formen der Dokumentation, dass Sie diese Art von Konnektivitätsänderungen über verwalten NSNotificationCenter.

Ich weiß, das ist eine knifflige Frage, aber ich bin ziemlich neugierig.

War es hilfreich?

Lösung

Dies ist ein bei Apple recht verbreitetes Designmuster, um eine Abkürzung für sehr häufige NSNotificationCenter-Benachrichtigungen bereitzustellen.Unter OS X tun sie dies mit vielen NSWindow-Benachrichtigungen und geben in diesen Fällen den Inhalt von NSNotification weiter.

Im Grunde ist es eine einfache Möglichkeit, die Benachrichtigung zu implementieren, ohne sicherstellen zu müssen, dass Sie Ihren Beobachter hinzufügen und entfernen.

Dies wird insbesondere erst verwendet, nachdem ein EAAccessory-Objekt erstellt wurde (was erst geschieht, nachdem das Zubehör angeschlossen wurde) und daher wäre die Verbindung-Methode zu diesem Zeitpunkt nicht anwendbar.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top