NSTimer&NSRunLoop

定时器及运行循环

  • NSRunLoop是iOS消息机制的处理模式
  • NSRunLoop的主要做用:控制NSRunLoop里面线程的执行和休眠,在有事情作的时候使当前NSRunLoop控制的线程工做,没有事情作让当前NSRunLoop的控制的线程休眠。 经过全部的“消息”都被添加到了NSRunLoop中去,而在这里这些消息并分为“input source”和“Timer source” 并在循环中检查是否是有事件须要发生,若是须要那么就调用相应的函数处理 定时器(NSTimer)

RunLoopMode(运行循环模式)

1.NSDefaultRunLoopMode 这是大多数操做中使用的模式。
2.NSConnectionReplyMode 该模式用来监控NSConnection对象。你一般
不须要在你的代码中使用该模式。
3.NSModalPanelRunLoopMode Cocoa使用该模式来标识modalpanel(模
态面板)的事件。
4.NSEventTracking(UITrackingRunLoopMode) Cocoa使用该模式来处
理用户界面相关的事件。
5.NSRunLoopCommonModes 这是一组可配置的通用模式。将input 
sources与该模式关联则同时也将input sources与该组中的其它模式进行了
关联。对于Cocoa应用,该模式缺省的包含了default,modal以及event tracking模式。

一个常见的问题就是,主线程中一个NSTimer添加在default mode中, 当界面上有一些scroll view的滚动频繁发生致使run loop运行在UItraking mode中, 从而这个timer没能如指望那般的运行。 因此,咱们就能够把这个timer加到NSRunLoopCommonModes中来解决(iOS中)。 定时器是让程序定时执行某一个方法:html

定时器(NSTimer)

/*
 * scheduledTimerWithTimeInterval: 间隔时间(秒)
 * target: 所要应用定时器的对象
 * selector: 调用的方法
 * userInfo: 所要传递的参数
 * repeats: 是否重复调用
 */
 
[NSTimer scheduledTimerWithTimeInterval:1 
ios

target:self selector:@selector(timerAction:) userInfo:@"参数" repeats:YES];objective-c

 

能够点击下列网址详细了解....(可是现阶段因为还有一些知识点是在后面才讲到,没有一些知识的铺垫,看这些文章的时候,有些吃力,因此看到有些不理解的时候,暂时不要太钻)框架

 

iOS开发之关于NSTimer使用函数

 

Foundation框架补充oop

 

NSRunLoop参考资料1spa

 

NSRunLoop参考资料2.net

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息