搜尋

首頁  >  問答  >  主體

xcode - iOS NSTimer问题

怪我咯怪我咯2772 天前641

全部回覆(3)我來回復

  • 阿神

    阿神2017-04-17 17:01:04

    [NSTimer timerxxx] 那個方法建立 timer ,然後:

    [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

    樓也講了,是次線程中 run loop 的問題

    回覆
    0
  • 迷茫

    迷茫2017-04-17 17:01:04

    [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(dealTimerClick) userInfo:nil repeats:YES];
    可以看下這個方法在文件中的描述:
    Creates and returns a new NSer run loop in the default mode.
    主執行緒沒有問題是因為主執行緒有自己的run loop,所以我想你在子執行緒上運行的時候需要自己設定下run loop。

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:01:04

        source = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_main_queue());
        dispatch_source_set_timer(_source, delay, interval * NSEC_PER_SEC, 0);
        dispatch_source_set_event_handler(source, ^{
            [weakTarget fire];
        });
        dispatch_resume(source);
    

    記得在fire方法裡面加入信號量控制

    回覆
    0
  • 取消回覆