如何将NSTimer设置为将来触发一次(例如30秒)。到目前为止,我只是设法将其设置为立即触发,然后间隔触发。
答案 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