purgeIdleCellConnections:找到一个清除conn = 0x1ddde360

Abd*_*bdu 13 xcode ios ios6 iphone-5

我无法找到解决这个问题的正确方法.我想有人可以帮我清除这个bug.

简介: 当我使用3G连接在设备上测试我的应用程序时,当控制台"purgeIdleCellConnections: found one to purge conn = 0x1ddde360"多次显示此错误时,它会以不同的数字出现(0x1ddde360 or 0x21b98a60 or....).有时它挂起,应用程序崩溃并死亡.我无法打开应用程序.我必须删除并重新构建.当我使用Wi-Fi时,它工作正常:完全没问题.

实际结果: 我在我的应用程序中使用Web服务(WSDL).在启动应用程序本身时,我正在调用多个Web服务.这个应用程序已经在App Store(Promayarnlite)中,但该文件是使用IOS 5.1 SDK构建的,因此它运行良好.现在我将我的Xcode更新为4.5.1和IOS 6 SDK,所以我想在App Store中更新我的应用程序.我正在努力解决这个问题.

编辑:A:内部NSURLConnection维护连接缓存.每个缓存条目表示一组到主机的持久HTTP连接.当有新请求进入时,它会在缓存中的条目上排队.这可能是现有条目,也可能是新条目,它也可能在该条目中生成新的HTTP连接,具体取决于各种复杂因素(保护空间,身份验证状态[在身份验证方法的情况下 - 是,我在看着你,NTLM! - 有状态],流水线,各种缓存限制等等.当与缓存条目关联的连接完成其所有请求的运行时,它会在缓存条目的队列中查找更多工作; 如果它没有找到任何连接空闲.如果连接空闲时间过长,

这个缓存实现在iOS 6中发生了变化.在iOS 6之前,有一种机制可以清除空闲缓存条目,Mac OS X和iOS的超时时间截然不同(30秒对6秒,iOS值可能低至旧版iOS上3秒).在iOS 6中,现在有两种清除空闲缓存条目的机制,一种适用于通过WWAN运行的连接,另一种适用于所有其他连接.WWAN超时已经回落到传统值(3秒),而所有其他连接超时已经升级到旧的Mac OS X默认值(30秒).

清除WWAN连接时会生成您看到的日志消息.iOS 5.x中不存在此日志消息,这解释了为什么您在测试中没有看到它.但是,所有版本的iOS都以某种形式存在基本机制.

此消息更可能是症状而不是原因.具体而言,该消息仅适用于空闲连接; 这只是NSURLConnection清理持久的HTTP连接,这些连接没有做任何有用的事情.如果您的网络出现问题,您需要调查连接闲置的原因.

小智 0

当设备连接到蜂窝网络时,我观察到此调试消息来自 iOS 6.0 SDK。从时间角度来看,我发现它与我的应用程序中终止的“活动”AJAX 调用相关。然而,很难证明任何事情,因为这只发生在 UIWebView 中渲染网页时。我只是说我不认为这些信息是善意的。我认为它们可能表明 Apple 框架中存在一个错误,该错误在终止连接方面过于激进。很难对 UIWebView 内运行的进行 AJAX 调用的 javascript 进行检测,因此目前一切都具有高度推测性。

  • Apple 开发者技术支持 Hai 先生表示:“这条日志消息不太可能是导致这些问题的直接原因。正如我在之前的回复中提到的,WWAN 连接的清除发生在所有以前版本的 iOS 上;唯一的区别是我们不小心在 iOS 6 中留下了不必要的日志消息”。 (2认同)