gpt4 book ai didi

objective-c - 使用 iOS 6.0 GM 关闭 session 时出现 EAAcessory 错误

转载 作者:太空狗 更新时间:2023-10-30 03:20:40 26 4
gpt4 key购买 nike

有一个 MFI 设备通过蓝牙 (2.1 + EDR) 连接到 iPhone 4S (6.0 GM) 或 iPad (6.0 GM)。该项目基于 Xcode 4.5 GM 构建。当应用收到 EAAccessoryDidDisconnectNotification 时,它会发送消息 [_eaSessionController closeSession];。所有这些在 iOS 5.1.1 或更早版本中运行良好。但是在 iOS6 上,我得到了如下日志:

-[NSCondition dealloc]: condition (<NSCondition: 0x2e5640> '(null)') deallocated while still in use
Break on _NSLockError() to debug.

有什么想法吗?

最佳答案

我遇到了同样的问题。在收到 EAAccessoryDidDisconnectNotification 后调用 [NSStream close] 时会抛出此警告。在断开连接之前,两个设备之间还应该有一些数据交换。

在 _NSLockError 上中断将显示在对象被释放的那一刻,一些由外部附件框架产生的线程正在等待条件。其中一个肯定会等待正在释放的条件,这解释了控制台上抛出的警告。

我还注意到,每次附件断开连接然后连接时,外部附件框架创建的线程数都在不断增加,而且它们似乎只是在泄漏。

在我看来,不知何故,外部附件框架没有正确释放它分配的资源,这导致了很多困惑。其后续影响之一是在调用 OSAtomicCompareAndSwap64 期间在其中一个泄漏的线程内发生崩溃。

我设法使用一个基本示例重现了这个问题,在该示例中,流被安排在主线程上以避免应用程序内部的任何线程管理。我相信这是 Apple 应该注意的 iOS 6 上的附件管理错误。我会报告并等待他们要说的。

与此同时,我想知道你们中是否有人在这方面取得了任何进展。

谢谢,

关于objective-c - 使用 iOS 6.0 GM 关闭 session 时出现 EAAcessory 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12456922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com