定时器

定时执行某个方法,可以带参数,可以选择循环;NSRunLoop;统计程序耗时

  1. 两种定时器的创建方法
  2. 时间精确不到ms级别
  3. 程序计算执行耗时的方法
  4. 定时器创建可以传递参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//
// Timer.m
// 5-4定时器
//
// Created by wanggang on 2017/8/2.
// Copyright © 2017年 hackingangle. All rights reserved.
//
#import "Timer.h"
@interface Timer() {
NSTimer *timer1;
NSTimer *timer2;
}
@end
@implementation Timer
-(void)startTimer {
// 第一种计时器
// timer = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(callbackTimer) userInfo:nil repeats:true];
// [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
// [[NSRunLoop currentRunLoop] run];
// 第二种计时器
// 携带参数
// timer2 = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(callbackTimer2:) userInfo:@"hackingangle" repeats:false];
// [timer2 fire];
// // 时间精度毫秒
// timer1 = [NSTimer timerWithTimeInterval:0.01 target:self selector:@selector(callbackTimer) userInfo:nil repeats:false];
// [[NSRunLoop currentRunLoop] addTimer:timer1 forMode:NSDefaultRunLoopMode];
// [[NSRunLoop currentRunLoop] run];
// 打印耗时
NSDate *timeMark = [NSDate date];
// 统计程序执行开始
for (int i=0; i<10000; i++) {
NSLog(@"HelloWorld");
}
// 统计程序执行结束
NSTimeInterval timeInterval = [timeMark timeIntervalSinceNow];
float timeNow = 0 - timeInterval;
NSLog(@"%@ %f", timeMark, timeNow);
}
-(void)callbackTimer{
NSLog(@"timer callback");
}
-(void)callbackTimer2:(NSTimer*) timer{
NSLog(@"timer callback2 %@", timer.userInfo);
}
@end
文章目录
,