Pregunta

He estado trabajando en una implementación de iOS que se conecta al hardware y, como tal, tengo que utilizar el marco de accesorios externos.Para interactuar con dispositivos, necesita tener una clase que maneje la comunicación con EAAccessory objetos.Para hacer esto, debe definir la clase de conectividad de su dispositivo con el EAAccessoryDelegate protocolo.

El EAAccessoryDelegate El protocolo contiene un método:

– accessoryDidDisconnect:(EAAccessory *)accessory.

La documentación de Apple dice:

El EAAccessoryDelegate El protocolo define un solo método para recibir notificaciones cuando el asociado EAAccessory El objeto está desconectado.La implementación de este método es opcional.

Cuando crea una instancia de su clase, puede registrar sus propios métodos con el NSNotificationCenter sistema.Cuando hay un evento de conexión de dispositivo o de desconexión de dispositivo, puede manejar el evento como desee.Cuando ocurre el evento de Desconexión del Dispositivo, el propósito del - accessoryDidDisconnect: se vuelve inútil porque proporciona exactamente la misma funcionalidad y datos a su clase.

Además, todos los ejemplos que puedo encontrar sobre cómo trabajar con el marco de accesorios externos brindan ejemplos de detección de cambios en la conectividad del dispositivo a través de NSNotificationCenter Mecanismo de suscripción.

Dicho esto, ¿cuál es el punto de – accessoryDidDisconnect: método cuando realmente nunca se usa?Sí, se puede implementar, pero como mencioné, todas las formas de documentación recomiendan que administre estos tipos de cambios de conectividad a través de NSNotificationCenter.

Sé que esta es una pregunta delicada, pero tengo bastante curiosidad.

¿Fue útil?

Solución

Este es un patrón de diseño bastante común con Apple, para proporcionar un atajo para notificaciones NSNotificationCenter muy comunes.En OS X, hacen esto con muchas de las notificaciones de NSWindow, transmitiendo el contenido de NSNotification en esos casos.

Básicamente, es una manera fácil de implementar la notificación sin tener que asegurarse de agregar y eliminar su observador.

En particular, esto se usa solo después de que se haya creado un objeto EAAccessory (lo que solo ocurre después de que el accesorio esté conectado) y, por lo tanto, tener el método de conexión no sería aplicable en este momento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top