EAAccessoryDelegate 中的 – accessoryDidDisconnect: 方法的目的是什么



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

EAAccessoryDelegate协议包含一种方法——

– accessoryDidDisconnect:(EAAccessory *)accessory .

苹果文档指出:

EAAccessoryDelegate协议定义了用于接收的单个方法 当关联的EAAccessory对象断开连接时发出通知。 此方法的实现是可选的。

实例

化类时,可以在NSNotificationCenter系统中注册自己的方法。 当存在设备连接或设备断开连接事件时,您可以根据需要处理该事件。 发生"设备断开连接"事件时,- accessoryDidDisconnect:的目的将变得毫无意义,因为它为类提供了完全相同的功能和数据。

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

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

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

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

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

特别是,这仅在创建 EAAccessory 对象后使用(仅在连接附件后发生(,因此,此时使用 connect 方法不适用。

最新更新