首页 > 移动平台 > 详细

iOS中的消息循环

时间:2016-04-21 07:27:08      阅读:238      评论:0      收藏:0      [点我收藏+]

什么是消息循环:

  消息循环就是NSRunloop这个类 ,每个线程都有自己的消息循环。

  主线程的消息循环默认是开启的(需要去检测事件),子线程默认关闭(通常不需要子线程检测事件)。

消息循环的目的:

  保证程序不退出、负责处理输入事件(输入源和Timer源)、如果没有事件发生则会让程序处于休眠状态。

消息循环的两种运行模式:NSDefaultRunloopModel和 NSRunloopCommonModels

   

     消息循环需要在一定的模式下才能相匹配,当在消息循环中添加了一个定时源时, 消息循环的模式必须和定时源的模式相匹配才能执行:

在主线程中:

      NSTimer *timer=  [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(TextDemo) userInfo:nil repeats:YES];
      [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];

     /*当时用当前模式NSDefaultRunLoopMode时,当在UI上触发可见事件时,模式就发生了改变则定时源中的方法不运行了

        将模式改为NSRunloopCommonModels时,定时源中的方法正常执行, 因为该模式下包含了两个底层的模式。

    */

   在子线程中需要开启消息循环的方法:

    //直接开启消息循环

    [[NSRunLoop currentRunLoop] run];

  //开启到什么时间
    [[NSRunLoop currentRunLoop]runUntilDate:[NSDate dateWithTimeIntervalSinceNow:2.0]];

 

iOS中的消息循环

原文:http://www.cnblogs.com/AbelYu/p/5415422.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!