我有一个NSTimer,设置如下:
[NSTimer scheduledTimerWithTimeInterval:0.5 target:timerTarget selector:NSSelectorFromString(targetSelector) userInfo:nil repeats:YES];
如何获取方法的返回值timerTarget
?
你对返回值做了什么?目标在0.5秒后异步运行.scheduledTimerWithTimeInterval:target:selector:useInfo:repeats:
即时返回的调用,此时目标尚未运行.如果你现在真的需要返回值,那么不要打扰定时器,只需正常调用选择器.
你不能,因为没有回报价值.
说明scheduledTimerWithTimeInterval:::::
方法的文档:
选择器必须具有以下签名:
- (void)timerFireMethod:(NSTimer*)theTimer
现在,您可以以不同方式声明您的方法,然后在其中返回一个值,但是您的方法具有与NSTimer期望的不同的签名.这个现在可以正常工作,但不能保证在将来工作 - 它可能随时中断,尤其是运行时的变化.
更重要的是,由于NSTimer并不期望返回值,因此它没有规定接收一个并在任何地方传递它.
而且,正如我在评论亚当的答案时所说,你的召唤scheduledTimerWithTimeInterval:::::
只返回一次,并且(正如亚当所说)立即这样做.你没有每0.5秒获得一个返回值,因为你没有每0.5秒获得一次返回 - 你只得到一次返回(每个计时器).
无论您在计时器方法中发现什么信息,您都需要在那里采取行动,或者将信息从那里发送到另一种方法.