How to pass an argument to a method called in a NSTimer(如何将参数传递给在 NSTimer 中调用的方法)
问题描述
我有一个计时器调用一个方法,但是这个方法需要一个参数:
I have a timer calling a method but this method takes one paramether:
theTimer = [NSTimer scheduledTimerWithTimeInterval:animationInterval target:self selector:@selector(timer) userInfo:nil repeats:YES];
应该是
theTimer = [NSTimer scheduledTimerWithTimeInterval:animationInterval target:self selector:@selector(timer:game) userInfo:nil repeats:YES];
现在这种语法似乎不正确.我尝试使用 NSInvocation,但遇到了一些问题:
now this syntax doesn't seems to be right. I tried with NSInvocation but I got some problems:
timerInvocation = [NSInvocation invocationWithMethodSignature:
[self methodSignatureForSelector:@selector(timer:game)]];
theTimer = [NSTimer scheduledTimerWithTimeInterval:animationInterval
invocation:timerInvocation
repeats:YES];
我应该如何使用调用?
推荐答案
鉴于此定义:
- (void)timerFired:(NSTimer *)timer
{
...
}
然后您需要使用 @selector(timerFired:)
(这是不带任何空格或参数名称的方法名称,但包括冒号).您要传递的对象(game
?)通过 userInfo:
部分传递:
You then need to use @selector(timerFired:)
(that's the method name without any spaces or argument names, but including the colons). The object you want to pass (game
?) is passed via the userInfo:
part:
theTimer = [NSTimer scheduledTimerWithTimeInterval:animationInterval
target:self
selector:@selector(timerFired:)
userInfo:game
repeats:YES];
在您的计时器方法中,您可以通过计时器对象的 userInfo
方法访问此对象:
In your timer method, you can then access this object via the timer object's userInfo
method:
- (void)timerFired:(NSTimer *)timer
{
Game *game = [timer userInfo];
...
}
这篇关于如何将参数传递给在 NSTimer 中调用的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何将参数传递给在 NSTimer 中调用的方法
基础教程推荐
- Android:对话框关闭而不调用关闭 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01