码迷,mamicode.com
首页 > 其他好文 > 详细

NSOperation详解

时间:2016-01-16 22:33:43      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:

1、创建方式
 
    NSTimer可以说一共有两种种创建的方式
 
     第一种:便利构造器创建法
     + scheduledTimerWithTimeInterval:invocation:repeats:
        + scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:
        + timerWithTimeInterval:invocation:repeats:
        + timerWithTimeInterval:target:selector:userInfo:repeats:
     第二种:初始化方法
     – initWithFireDate:  interval:  target:  selector:  userInfo:  repeats:
 
注意两种创建方式的区别:
          + scheduledTimerWithTimeInterval:invocation:repeats:
         + scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:
     以上是创建一个定时器并且将其加入到当前循环中。也可以将其理解为:在初始化一个定时器,在[NSTimerInterval]seconds 时间之后,自动启动定时器。     
 
        + timerWithTimeInterval:invocation:repeats:
        + timerWithTimeInterval:target:selector:userInfo:repeats:
    以上两个同样是创建NSTimer。但是没有加入到当前的循环中(class method to create the timer object without scheduling it on a run loop)。我们在建立之后,需要手动的加入到当前的循环中(after creating it, you must add the timer to a run loop manually by calling the addTimer:forMode: method of the corresponding NSRunLoop object)。
 
以下两种创建方式是同样的效果:
      _timer=[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(changeTimeAtTimedisplay) userInfo:nil repeats:YES];
 
          _timer=[NSTimer timerWithTimeInterval:10 target:self selector:@selector(changeTimeAtTimedisplay) userInfo:nil repeats:YES];
         //必须手动加入到当前循环中去
       NSRunLoop *runloop=[NSRunLoop currentRunLoop];
       [runloop addTimer:_timer forMode:NSDefaultRunLoopMode];
 
 
2、NSTimer的属性信息
 
   – isValid  //是否在运行
     – fireDate //Returns the date at which the receiver will fire.
     – setFireDate: //重新设置定时器开始运行的时间
     – timeInterval  //定时器延时时间
     – userInfo //其他信息
   – Invalidate //停止一个计时器
 
3、关于 -fire属性 ([_timer fire];)
 
     他并不是真的启动一个定时器,从之前创建的方法中可以看到,定时器在创建之后的设定的时间之后自动启动。这个方法官方文档解释为:
    
     You can use this method to fire a repeating timer without interrupting its regular firing schedule. If the timer is non-repeating, it is automatically invalidated after firing, even if its scheduled fire date has not arrived.
    
     你可以使用这种方法来触发一个重复的定时器,而不中断它的常规触发时间。如果定时器是不重复的,它是在出发后自动失效,即使其预定的日期还没有到。
 

NSOperation详解

标签:

原文地址:http://www.cnblogs.com/factor/p/5136470.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!