130得票1回答
NSDefaultRunLoopMode与NSRunLoopCommonModes的区别

每当我尝试在UIScrollView、MPMapView或其他类似的控件后面下载大文件时,只要一触摸iPhone屏幕,下载过程就会停止。幸运的是,Jörn写了一篇很棒的博客文章,提出了一个替代方法,即使用NSRunLoopCommonModes进行连接。 这让我深入研究了两种模式,NSDef...

123得票6回答
理解NSRunLoop

有人能解释一下NSRunLoop是用来做什么的吗?我知道NSRunLoop与NSThread有关联,对吗?所以如果我创建了一个线程,比如:NSThread* th=[[NSThread alloc] initWithTarget:self selector:@selector(someMeth...

76得票10回答
如何在后台线程创建NSTimer?

我有一个任务需要每1秒执行一次。目前我有一个NSTimer重复每秒触发。如何使计时器在后台线程(非UI线程)中触发? 我可以让NSTimer在主线程触发,然后使用NSBlockOperation调度一个后台线程,但我想知道是否有更有效的方法。

55得票5回答
RunLoop和DispatchQueue作为调度器的区别

当使用新的Combine框架时,您可以指定从发布者接收元素的调度程序。 在将发布者分配给UI元素时,使用RunLoop.main和DispatchQueue.main之间有很大的区别吗?第一个返回主线程的运行循环,而第二个返回与主线程关联的队列。

48得票5回答
如何安排一个代码块在下一个运行循环迭代中运行?

我希望能在下一次运行循环迭代中执行一个块。重要的是,无论它是在下一次运行循环的开始还是结束时执行,只要执行被延迟到当前运行循环中的所有代码都执行完毕即可。 我知道以下方法行不通,因为它与主运行循环交错,所以我的代码可能会在下一个运行循环中执行,但也可能不会。 dispatch_async(...

35得票3回答
使用Swift命令行程序中的NSURLSession

我试图在将其集成到更大的应用程序之前测试一个小型概念验证命令行应用程序。我正在尝试使用这个示例使用NSURLSession下载一些数据。然而,如果我在简单的OS X命令行应用程序中使用给定的示例,则应用程序在检索到数据之前退出。 如何使用NSURLSession从独立的命令行应用程序下载数据...

32得票2回答
需要关于调度队列、线程和NSRunLoop的一些澄清。

我所知道和理解的如下:全局队列是一个并发队列,可以将任务分派到多个线程。执行任务的顺序不保证。例如:dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), { for (int i; i<...

23得票2回答
如何在失效后“验证”NSTimer?

基本上,我有一个定时器,它应该在接收到按键事件时重复,并在用户释放按键时失效。然而,即使我在NSRunLoop中调用addTimer:forMode:,我仍然无法“验证”计时器。有人知道这是为什么以及如何解决吗?谢谢。

22得票2回答
保持NSThread的活动状态并在其上运行NSRunLoop

我正在启动一个新的NSThread,希望以后可以通过调用performSelector:onThread:...来使用它。根据我的理解,调用该方法会将该调用添加到该线程上的runloop中,因此在下一次迭代时,它将弹出所有这些调用并依次调用它们,直到没有可以调用的内容为止。因此,我需要这种功能...

22得票3回答
使用GCD运行重复的NSTimer?

我想知道为什么在GCD块中创建重复计时器时它不起作用? 这个可以正常工作:-(void)viewDidLoad{ [super viewDidLoad]; [NSTimer scheduledTimerWithTimeInterval:1.0 target:self sele...