当前位置:  开发笔记 > 编程语言 > 正文

获得NSTimer目标的返回值

如何解决《获得NSTimer目标的返回值》经验,为你挑选了2个好方法。

我有一个NSTimer,设置如下:

[NSTimer scheduledTimerWithTimeInterval:0.5 target:timerTarget selector:NSSelectorFromString(targetSelector) userInfo:nil repeats:YES];

如何获取方法的返回值timerTarget



1> Adam Rosenfi..:

你对返回值做了什么?目标在0.5秒后异步运行.scheduledTimerWithTimeInterval:target:selector:useInfo:repeats:即时返回的调用,此时目标尚未运行.如果你现在真的需要返回值,那么不要打扰定时器,只需正常调用选择器.



2> Peter Hosey..:

你不能,因为没有回报价值.

说明scheduledTimerWithTimeInterval:::::方法的文档:

选择器必须具有以下签名:

- (void)timerFireMethod:(NSTimer*)theTimer

现在,您可以以不同方式声明您的方法,然后在其中返回一个值,但是您的方法具有与NSTimer期望的不同的签名.这个现在可以正常工作,但不能保证在将来工作 - 它可能随时中断,尤其是运行时的变化.

更重要的是,由于NSTimer并不期望返回值,因此它没有规定接收一个并在任何地方传递它.

而且,正如我在评论亚当的答案时所说,你的召唤scheduledTimerWithTimeInterval:::::只返回一次,并且(正如亚当所说)立即这样做.你没有每0.5秒获得一个返回值,因为你没有每0.5秒获得一次返回 - 你得到一次返回(每个计时器).

无论您在计时器方法中发现什么信息,您都需要在那里采取行动,或者将信息从那里发送到另一种方法.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有