将NSTimer设置为将来触发一次

时间:2011-10-14 08:35:22

标签: iphone objective-c ios nstimer

如何将NSTimer设置为将来触发一次(例如30秒)。到目前为止,我只是设法将其设置为立即触发,然后间隔触发。

3 个答案:

答案 0 :(得分:14)

您要使用的方法是:

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval) seconds target:(id) target selector:(SEL) aSelector userInfo:(id) userInfo repeats:(BOOL) repeats
带有repeats == NO个参数和seconds == 30

。这将创建计时器并安排它。它只会在30秒内(而不是立即)发射一次。

答案 1 :(得分:6)

您可以使用未来日期设置计时器,并将重复设置为NO

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval) seconds
                                     target:(id) target
                                   selector:(SEL) aSelector
                                   userInfo:(id) userInfo
                                    repeats:(BOOL) repeats

答案 2 :(得分:6)

使用此类方法安排计时器。

 +(NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds
    target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo
    repeats:(BOOL)repeats

<强>参数

计时器点火之间的秒数。如果seconds小于或等于0.0,则此方法选择非负值0.1毫秒 的
计时器触发时,由aSelector指定的消息发送到的对象。目标对象由计时器保留,并在计时器无效时释放 的 aSelector
定时器触发时发送到目标的消息。选择器必须具有以下签名:
- (void)timerFireMethod:(NSTimer *)theTimer
计时器将自身作为此方法的参数传递 的 USERINFO
计时器的用户信息。您指定的对象由计时器保留,并在计时器失效时释放。此参数可能为零 的重复
如果是,则计时器将反复重新安排自己,直到无效。如果否,则计时器在发生后将失效 示例

    [NSTimer scheduledTimerWithTimeInterval:2.0
             target:self
             selector:@selector(targetMethod:)
             userInfo:[self userInfo]
             repeats:NO];

计时器在2秒后由运行循环自动触发。 Timer Programming Topics