objective-c - 获取 NSTimer 目标的返回值

标签 objective-c cocoa return nstimer

我有一个 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/

相关文章:

macos - 防止 Cocoa WebView 中的资源加载

mysql - MySQL 中带游标的存储过程

c - 函数局部变量的 return 如何工作?

ios - 将文本字段的值与 objective-c 中的数组内容匹配

Swift 在沙盒模式下执行命令行命令

objective-c - 为什么这不会画一条路?

objective-c - Objective-C 中的委托(delegate)查询

javascript - 如何从另一个函数中停止 javascript 函数?

iphone - 编译错误与 : switch, "expected expression before"

iphone - 当应用程序从后台恢复时执行什么方法