我一直在研究连接到硬件的iOS实现,因此,我不得不使用外部附件框架。为了与设备交互,您需要一个处理与EAAccessory
对象通信的类。为此,您必须使用EAAccessoryDelegate
协议定义设备连接类。
EAAccessoryDelegate
协议包含一种方法 -
– accessoryDidDisconnect:(EAAccessory *)accessory
。
Apple文档声明:
EAAccessoryDelegate
协议定义了一种接收方法 关联的EAAccessory
对象断开连接时的通知。 此方法的实现是可选的。
在实例化类时,可以使用NSNotificationCenter
系统注册自己的方法。当存在Device Connect或Device Disconnect事件时,您可以根据需要处理事件。当发生Device Disconnect事件时,- accessoryDidDisconnect:
的目的变得毫无意义,因为它为您的类提供了完全相同的功能和数据。
此外,我可以找到有关使用外部附件框架的示例,提供了通过NSNotificationCenter
订阅机制检测设备连接更改的示例。
话虽如此,– accessoryDidDisconnect:
方法从未真正使用过时有什么意义?是的,它可以实现,但正如我所提到的,所有形式的文档都建议您通过NSNotificationCenter
管理这些类型的连接更改。
我知道这是一个挑剔的问题,但我很好奇。
答案 0 :(得分:1)
这是Apple的常见设计模式,为非常常见的NSNotificationCenter通知提供快捷方式。在OS X上,他们使用很多NSWindow通知执行此操作,在这些情况下传递NSNotification的内容。
基本上,这是一种实现通知的简便方法,无需确保添加和删除观察者。
特别是,只有在创建EAAccessory对象后才会使用它(仅在连接附件后才会发生),因此,此时连接方法将不适用。