EAAccessoryDe​​legate中 - accessoryDidDisconnect:方法的目的是什么?

时间:2012-03-13 16:12:01

标签: objective-c ios external-accessory eaaccessory

我一直在研究连接到硬件的iOS实现,因此,我不得不使用外部附件框架。为了与设备交互,您需要一个处理与EAAccessory对象通信的类。为此,您必须使用EAAccessoryDelegate协议定义设备连接类。

EAAccessoryDelegate协议包含一种方法 -

– accessoryDidDisconnect:(EAAccessory *)accessory

Apple文档声明:

  

EAAccessoryDelegate协议定义了一种接收方法   关联的EAAccessory对象断开连接时的通知。   此方法的实现是可选的。

在实例化类时,可以使用NSNotificationCenter系统注册自己的方法。当存在Device Connect或Device Disconnect事件时,您可以根据需要处理事件。当发生Device Disconnect事件时,- accessoryDidDisconnect:的目的变得毫无意义,因为它为您的类提供了完全相同的功能和数据。

此外,我可以找到有关使用外部附件框架的示例,提供了通过NSNotificationCenter订阅机制检测设备连接更改的示例。

话虽如此,– accessoryDidDisconnect:方法从未真正使用过时有什么意义?是的,它可以实现,但正如我所提到的,所有形式的文档都建议您通过NSNotificationCenter管理这些类型的连接更改。

我知道这是一个挑剔的问题,但我很好奇。

1 个答案:

答案 0 :(得分:1)

这是Apple的常见设计模式,为非常常见的NSNotificationCenter通知提供快捷方式。在OS X上,他们使用很多NSWindow通知执行此操作,在这些情况下传递NSNotification的内容。

基本上,这是一种实现通知的简便方法,无需确保添加和删除观察者。

特别是,只有在创建EAAccessory对象后才会使用它(仅在连接附件后才会发生),因此,此时连接方法将不适用。