码迷,mamicode.com
首页 > 移动开发 > 详细

iOS中的消息循环

时间:2016-04-21 07:29:51      阅读:170      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!