• NSRunLoop && NSTimer


    新的一年的开始,希望大家一切越来越好,越来越开心快乐!!!

    定时器及运行循环

    • 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中)。 定时器是让程序定时执行某一个方法:

    定时器(NSTimer)

    /*
     * scheduledTimerWithTimeInterval: 间隔时间(秒)
     * target: 所要应用定时器的对象
     * selector: 调用的方法
     * userInfo: 所要传递的参数
     * repeats: 是否重复调用
     */
     
    [NSTimer scheduledTimerWithTimeInterval:1 
    target:self selector:@selector(timerAction:) userInfo:@"参数" repeats:YES];
    望亲爱的大家都能学习到一点东西!!!欢迎收藏!!!
     
  • 相关阅读:
    软件工程实验二
    软件工程实验一
    软件工程作业--ATM自助银行服务系统
    软件工程作业—举例分析流程图与活动图的区别与联系
    第一个随笔
    机器学习 实验四 决策树算法及应用
    机器学习实验三 朴素贝叶斯算法及应用
    机器学习 实验二 K-近邻算法及应用
    飞机订票系统(文档)
    机器学习 实验一 感知器及其应用
  • 原文地址:https://www.cnblogs.com/Ruby-Hua/p/5093826.html
Copyright © 2020-2023  润新知