cari

Rumah  >  Soal Jawab  >  teks badan

xcode - iOS NSTimer问题

怪我咯怪我咯2772 hari yang lalu643

membalas semua(3)saya akan balas

  • 阿神

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

    [NSTimer timerxxx] 那个方法创建 timer ,然后:

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

    楼也也讲了,是次线程中 run loop 的问题

    balas
    0
  • 迷茫

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

    [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(dealTimerClick) userInfo:nil repeats:YES];
    可以看下这个方法在文档中的描述:
    Creates and returns a new NSTimer object and schedules it on the current run loop in the default mode.
    主线程没有问题是因为主线程有自己的run loop,所以我想你在子线程上运行的时候需要自己配置下run loop。

    balas
    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方法里面加入信号量控制

    balas
    0
  • Batalbalas