NSTimer 的用法





NSTimer在有大量的用戶點擊事件時會被阻塞

主線程的解決方式async

  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);
}




子線程的解決方式
oop

    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);


}
相關文章
相關標籤/搜索