NSTimer 的用法





NSTimer在有大量的用户点击事件时会被阻塞

主线程的解决方式

  NSTimer *timer=[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:
  @selector(test:) userInfo:@"你好" repeats:YES];
    [[NSRunLoop mainRunLoop]addTimer:timer forMode:NSRunLoopCommonModes];

    
-(void)test:(NSTimer *)message{
    NSLog(@"%@",message.userInfo);
}




子线程的解决方式

    dispatch_queue_t queue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    dispatch_async(queue, ^{
        NSLog(@"start asynic");

        NSTimer *timer=[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:
        @selector(test) userInfo:@"你好" repeats:YES];
        NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
        [runLoop run];


        [runLoop addTimer:timer forMode:NSDefaultRunLoopMode];

    });
    
    
    -(void)test:(NSTimer *)message{
    NSLog(@"%@",message.userInfo);


}




你可能感兴趣的:(NSTimer 的用法)