美文网首页
iOS开发,延时操作(定时器)

iOS开发,延时操作(定时器)

作者: DreamerForever | 来源:发表于2017-08-16 16:55 被阅读0次

    开发中有时候会执行一些操作,但是不希望立刻执行,而是在一段时间后,或者特定的时间中去执行按方法,这个时候就需要我们做一些延时操作了,有人可能第一反映想到了定时器,不错,这也是其中的一种实现方法。

    熟悉iOS开发的人应该都知道,iOS中为我们提供了至少三种延时操作的方法,两个跟多线程有关,一个跟定时器有关。以下是这三个方法:

    1、[NSTimer scheduledTimerWithTimeInterval:7 target:self selector:@selector(showView) userInfo:nil repeats:NO];

    这个就是通过定时器来做的,这种方式非常方便不用我们手动添加到runloop上,

    NSTimer *myTimer= [NSTimer timerWithTimeInterval:7.0target:selfselector:@selector(timerFired:)userInfo:nilrepeats:NO];

    [[NSRunLoop currentRunLoop]addTimer:myTimerforMode:NSDefaultRunLoopMode];

    这种方式创建的定时器要添加到runloop上,否则是没有效果的,创建完后如果想要立即执行的可以调用 -(void)fire;方法,-(void)invalidate;方法可以停止定时器,将定时器从runLoop中移除。

    2、[self performSelector:@selector(startGame) withObject:self afterDelay:5];这是第二种方法,

    3、dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

    });

    以上是经常用到的延时方法。

    相关文章

      网友评论

          本文标题:iOS开发,延时操作(定时器)

          本文链接:https://www.haomeiwen.com/subject/wmnirxtx.html