Какова цель — аксессуарDidDisconnect:метод внутри 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