gpt4 book ai didi

objective-c - UI 滚动时应用程序停止从套接字接收数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:04 24 4
gpt4 key购买 nike

我有一个使用 UDP 套接字接收数据的 iPad 应用程序。它有一个 UIWebView 来浏览网页。但是在 UIWebView 中滚动时,一切都卡住并且没有收到任何数据。我一直在搜索,它与运行循环和线程有关。但是,如果 UIWebView 不能在主线程之外的另一个线程中运行,我如何在滚动时接收数据?持续接收数据至关重要。

该项目使用来自 Cocoa AsyncSocket 的 AsyncUdpSocket 类效果很好。还有来自 Matt Gallagher 的单例类.一切都在主线程、UDP 接收和 UI 中运行。

提前致谢!

最佳答案

当您进行滚动时,运行循环会进入不同的模式 (UITrackingRunLoopMode) 并停止响应主线程上的网络事件。这样做是出于性能原因。

您应该能够在适当的运行循环模式(UITrackingRunLoopMode 我相信)上安排这些更新。不过,我不推荐这样做。

相反,请尝试在另一个线程(或队列,耶 GCD!)上设置您的 UDP 网络代码,并在主线程上安排回调以更新 UI。这将保证网络线程在套接字上取回数据时具有正确的运行循环模式。

关于objective-c - UI 滚动时应用程序停止从套接字接收数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7740290/

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