问题标签 [nsrunloop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
11145 浏览

iphone - PerformSelector After delay不在后台模式下运行 - iPhone

我有一个 voip 应用程序,它也在后台不断运行。当我在后台时,我从主线程调用:(建立网络连接以防我诊断出网络丢失)。

但是,选择器仅在我的应用返回前台时执行。我应该做任何特别的事情来使选择器在后台执行吗?

谢谢

编辑:

我改为添加此代码,但在提供的延迟之后仍然没有调用“重新连接”方法。当我已经在后台时,我调用了“reconectInBackgroundAfterDelay”方法。

还有其他建议吗?

编辑 2 找到了解决方案。见下文

0 投票
1 回答
410 浏览

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

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

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

提前致谢!

0 投票
2 回答
2745 浏览

ios - iOS:在 NSThread 中运行计时器导致 EXC_BAD_ACCESS?

我的应用程序发生了一些崩溃。检查日志并使用 atos 时,它会告诉我崩溃的确切位置,也就是我告诉我的 NSRunLoop 运行的位置:

如您所见,崩溃发生了,[runLoop run]但我不知道为什么。它通常发生在我第二次调用 createTimerThread 方法时。

我在这里做错了什么?我想做的只是在后台运行一个计时器,这样它就不会在主线程上,因为我需要更新一个UILabel.

我应该使用像 Grand Central Dispatch (GCD) 这样的新东西吗?

0 投票
2 回答
5509 浏览

objective-c - setNeedsLayout 是如何工作的?

我想知道苹果的-setNeedsLayout工作原理。

我已经知道它比直接调用更有效-layoutSubviews,因为我可能需要在一个方法中执行两次。
这正是我所需要的:-setNeedsValidation视图控制器的一些自定义。
但是如何实现这样的功能呢?

0 投票
2 回答
3388 浏览

objective-c - NSRunloop runUntilDate 导致应用程序崩溃

我有一个在 Snow Leopard 服务器上运行数天和数周的应用程序。它用于-[NSRunLoop runUntilDate:]“暂停”十秒钟,执行其任务,然后再次暂停。运行一个多小时后,我的应用程序崩溃并出现以下报告:

崩溃报告

乍一看,我认为我的NSRunLoop对象不再有效,因此releaseCF 深处的消息导致崩溃。但是,我认为情况并非如此,因为我currentRunLoop在之前的行中获得了对对象的引用。

崩溃时间在 1 到 1.5 小时之间变化,但我无法弄清楚是什么原因造成的。任何评论或意见或调试想法将不胜感激,因为我不确定下一步该做什么。

编辑:问题解决 - 请在下面查看我的答案

0 投票
3 回答
9568 浏览

objective-c - 不允许对网络线程进行多个锁定!请提交一个错误。现在崩溃

我提出一个 url-Request 并等待答案

我开始请求,然后等到 synchronousOperationComplete=TRUE

然后我返回响应

一切似乎都很好,我得到了响应,一切正常,但是当我关闭应用程序时,我得到:

似乎是 NSRunLoop 导致错误的原因,当我推荐它时,错误没有出现。

我使用 IOS 5.0 有人知道我可以做些什么来避免这个错误吗?

我在 IOS 4.3 和 IOS5 Beta 中使用了它,它工作正常。

但是我将我的tomcat6移到了另一台服务器上,也许这是服务器的错误

THX mBax

0 投票
4 回答
9303 浏览

ios - iOS,NSURLConnection:在不同线程上委托回调?

如何让 NSURLConnection 从不同的线程而不是主线程调用它的委托方法。我试图弄乱 scheduleInRunLoop:forMode:but 似乎没有做我想做的事。

我必须下载一个大文件,它会频繁地中断主线程,以至于正在发生的一些渲染开始变得不稳定。

我看不到的另一件事是“模式”。只有两种模式记录在案,所以真正要测试的并不多。

有任何想法吗?

谢谢

0 投票
1 回答
1319 浏览

iphone - 如何正确停止 NSRunLoop?

我在我的应用程序中使用 NSRunLoop。只有一个说法

在 for 循环中执行。需要每两秒更新一次某些文本,持续三次。一切正常,但是当我退出它运行的屏幕(并且在它运行时这是最重要的)然后再次进入屏幕然后再次退出时,我的应用程序崩溃了。我想如果我在运行时退出,我必须停止运行 NSRunLoop,但我不知道该怎么做。你能给我一些建议吗?

这是我的循环:

0 投票
10 回答
67589 浏览

objective-c - 如何在后台线程上创建 NSTimer?

我有一个需要每 1 秒执行一次的任务。目前我有一个 NSTimer 每 1 秒重复触发一次。如何在后台线程(非 UI 线程)中触发计时器?

我可以在主线程上触发 NSTimer,然后使用 NSBlockOperation 调度后台线程,但我想知道是否有更有效的方法来执行此操作。

0 投票
1 回答
454 浏览

objective-c - 在 NSRunLoop 上,需要澄清

当我

... 没发生什么事。直到 i 才调用委托方法

我原以为startImmediately:YES会这样做。