Я работаю над реализацией iOS, которая подключается к оборудованию, и поэтому мне приходится использовать инфраструктуру внешних аксессуаров. Чтобы взаимодействовать с устройствами, вам нужен класс, который обрабатывает связь с EAAccessory
объектами. Для этого вы должны определить класс подключения вашего устройства с протоколом EAAccessoryDelegate
.
Протокол EAAccessoryDelegate
содержит один метод:
– accessoryDidDisconnect:(EAAccessory *)accessory
.
В документации Apple говорится:
Протокол
EAAccessoryDelegate
определяет единый метод получения уведомлений, когда связанный объектEAAccessory
отключен. Реализация этого метода необязательна.
Когда вы создаете экземпляр своего класса, вы можете зарегистрировать свои собственные методы в системе NSNotificationCenter
. При наличии события подключения устройства или отключения устройства вы можете обрабатывать это событие по своему усмотрению. Когда происходит событие отключения устройства, цель - accessoryDidDisconnect:
становится бессмысленной, поскольку она предоставляет точно такие же функции и данные для вашего класса.
Кроме того, все примеры работы с External Accessory Framework, которые я могу найти, содержат примеры обнаружения изменений подключения устройства с помощью механизма подписки NSNotificationCenter
.
С учетом сказанного, в чем смысл метода – accessoryDidDisconnect:
, если он никогда не используется? Да, это можно реализовать, но, как я уже упоминал, во всех формах документации рекомендуется управлять этими типами изменений подключения через файл NSNotificationCenter
.
Я знаю, что это сложный вопрос, но мне очень любопытно.