为了账号安全,请及时绑定邮箱和手机立即绑定

了解NSRunLoop

了解NSRunLoop

iOS
猛跑小猪 2019-12-09 13:13:20
谁能解释什么NSRunLoop?据我所知NSRunLoop,这与NSThread权利有关吗?所以假设我创建一个像NSThread* th=[[NSThread alloc] initWithTarget:self selector:@selector(someMethod) object:nil];[th start];-(void) someMethod{    NSLog(@"operation");}所以在这个线程完成他的工作之后正确吗?为什么使用RunLoops或在哪里使用?从Apple文档中我读到了一些内容,但对我来说还不清楚,所以请尽可能简单地解释一下
查看完整描述

3 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

RunLoops有点像发生事情的盒子。


基本上,在RunLoop中,您要处理一些事件,然后返回。如果超时之前未处理任何事件,则返回。您可以说它类似于异步NSURLConnections,它在后台处理数据而不干扰您的当前循环,但同时您需要同步数据。可以在RunLoop的帮助下完成此操作,RunLoop使您变得异步NSURLConnection并在调用时提供数据。您可以这样使用RunLoop:


NSDate *loopUntil = [NSDate dateWithTimeIntervalSinceNow:0.1];


while (YourBoolFlag && [[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate:loopUntil]) {

    loopUntil = [NSDate dateWithTimeIntervalSinceNow:0.1];

}

在此RunLoop中,它将运行直到完成其他一些工作并将YourBoolFlag设置为false 为止。


同样,您可以在线程中使用它们。


希望这对您有所帮助。


查看完整回答
反对 回复 2019-12-09
  • 3 回答
  • 0 关注
  • 494 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信