ios - 为什么 EAAccessoryDidConnectNotification 会出现两次?

标签 ios ipad nsnotificationcenter accessory

我有一个类用于管理来自和发送至 iPad 外部配件的消息。在初始化中,我有以下代码:

- (id) init
{
    self = [super init];
    if (!self) return;

    [[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications];    //we want to hear about accessories connecting and disconnecting
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(accessoryDidConnect:)
                                                 name:EAAccessoryDidConnectNotification
                                               object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(accessoryDidDisconnect:)
                                                 name:EAAccessoryDidDisconnectNotification
                                               object:nil];
    ...
}

在 dealloc 中我有

- (void) dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self name:EAAccessoryDidDisconnectNotification object:nil];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:EAAccessoryDidConnectNotification object:nil];
    [[EAAccessoryManager sharedAccessoryManager] unregisterForLocalNotifications];    
}

出于某种原因,当我将外部配件连接到 iPad 时,accessoryDidConnect: 会触发,然后是 accessoryDidDisconnect: 然后是 accessoryDidConnect:

我不明白为什么我会得到一个额外的连接和断开连接。有什么想法吗?

最佳答案

eaaccessory 框架将始终出于某种原因触发 2 个连接和 2 个断开连接通知。第一个连接断开对将没有协议(protocol)字符串,您可以忽略这些。

关于ios - 为什么 EAAccessoryDidConnectNotification 会出现两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6874853/

相关文章:

ios - 单击电源按钮的系统通知或任何委托(delegate)方法 - iOS

ios - NSNotificationCenter 和 UIPickerView 的问题

objective-c - 在我的 xib 文件中委托(delegate)给文件所有者是什么意思?

iphone - 直到 pushViewController 才应用外观更改

ios - Apple Mach-O 链接器错误

iphone - 屏蔽 UIView、CALayer 的动画

ios - 在 iPad 应用程序中实现双重身份验证

ios - UIAlertAction不显示传递的消息

ios - 在 UITableView 子类中设置 UITableViewDataSource 无效

iOS 数据保护不适用于已安装的应用程序