• IOS OC 多任务定时器 NSRunLoop 管理 NSTimer


    下面有两种做法 

    1.使用日期组件 NSDateComponents

    2.使用NSString 生成一个日期

        //  创建一个日历对象

     

        NSCalendar *calendar = [NSCalendar currentCalendar];

        //  创建日期组件

        NSDateComponents *dc = [[NSDateComponents alloc]init];

        //  设置当前时间

        [dc setCalendar: calendar];

       

        [dc setYear: 2014];

        [dc setMonth: 4];

        [dc setDay: 9];

        [dc setHour:21];

        [dc setMinute:26];

        [dc setSecond:0];   

     

        NSString *dateStr = @"2014-04-0921:38:00";

       

        NSDateFormatter *formatter = [[NSDateFormatter alloc]init];

       

        formatter.dateFormat=@"yyyy-MM-ddHH:mm:ss";

       

        NSDate *schuduleNate = [dc date];

        NSDate *schuduleNate2  = [formatter dateFromString:dateStr];

     

        NSDate *dateNow  = [NSDate date];

       

        // 计算时间差

        NSTimeInterval  num = [schuduleNate2 timeIntervalSinceDate:dateNow];

        NSLog(@"%f 后开始执行任务",num);

       

        // 任务池

        NSRunLoop *mainLoop =   [NSRunLoop currentRunLoop];

     

        //

        NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:num target:self selector:@selector(scheduleTask) userInfo:nil repeats:NO];

        NSTimer *timer2 = [NSTimer scheduledTimerWithTimeInterval:num+3 target:self selector:@selector(scheduleTask) userInfo:nil repeats:NO];

       

        // 添加到任务池中

       

        [mainLoop addTimer:timer forMode:NSDefaultRunLoopMode];

        [mainLoop addTimer:timer2 forMode:NSDefaultRunLoopMode];

        [mainLoop run];

    输出信息

    2014-04-09 21:37:54.289 WeChat[1810:60b] 5.710526后开始执行任务

    2014-04-09 21:38:00.001 WeChat[1810:60b] do some thing

    2014-04-09 21:38:03.001 WeChat[1810:60b] do some thing

  • 相关阅读:
    编译nginx时openssl报错的解决方案
    编译nginx时make报错[-Werror=implicit-fallthrough=]的解决方案
    centos8下编译安装tomcat
    解决centos安装不上apache:No match for argument: httpd
    编译安装apache
    编译apache出现gcc: error: /usr/lib/rpm/redhat/redhat-hardened-ld: No such file or directory
    配置与管理FTP服务器
    2018icpc南京现场赛-I Magic Potion(最大流)
    Codeforces 1062B Math(质因数分解)
    BZOJ 1009 [HNOI2008]GT考试(矩阵快速幂优化DP+KMP)
  • 原文地址:https://www.cnblogs.com/llios/p/3922065.html
Copyright © 2020-2023  润新知