我有一个 NSTimer,其设置如下:
[NSTimer scheduledTimerWithTimeInterval:0.5 target:timerTarget selector:NSSelectorFromString(targetSelector) userInfo:nil repeats:YES];
如何获取timerTarget
方法的返回值?
最佳答案
不能,因为没有返回值。
引用documentation of the scheduledTimerWithTimeInterval:::::
method :
The selector must have the following signature:
- (void)timerFireMethod:(NSTimer*)theTimer
现在,您可以以不同的方式声明您的方法,然后在其中返回一个值,但是您的方法的签名与 NSTimer 预期的不同。现在可以正常工作,但不能保证将来也能正常工作 - 它可能随时中断,尤其是运行时发生更改。
更重要的是,由于 NSTimer 不期望返回值,因此它没有规定接收返回值并将其传递到任何地方。
此外,正如我在对 Adam 的回答的评论中所说,您对 scheduledTimerWithTimeInterval:::::
的调用仅返回一次,并且(正如 Adam 所说)它会立即返回。您不会每 0.5 秒获得一个返回值,因为您不会每 0.5 秒获得一个返回值 - 您仅获得一个返回值(每个计时器)。
无论您在计时器方法中找到什么信息,您都需要在那里对其采取行动,或者将包含该信息的消息从那里发送到另一个方法。
关于objective-c - 获取 NSTimer 目标的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/599084/