objective-c - 使用 NSTimer 以及从常规调用相同的方法传递参数

标签 objective-c cocoa nstimer

我需要将一个整数传递给我的方法startEvent:。该方法是定时器的 Action 方法。我已阅读有关如何使用 userInfo 传递数据的信息,但我不明白如何执行此操作,因此我仍然可以像平常一样调用该方法。

如何从 NSTimer 和常规调用中传递整数到同一方法?

[NSTimer scheduledTimerWithTimeInterval:0.032f target:self selector:@selector(startEvent:) userInfo:nil repeats:NO];

[self startEvent: 0];

-(void)startEvent:(int) event {
// ...
}

最佳答案

对计时器的操作方法使用传递:

- (void)startEventFromTimer:(NSTimer *)tim
{
    [self startEvent:[[tim userInfo] intValue]];
}

您的计时器是使用 NSNumber 作为其用户信息对象创建的。

[NSTimer scheduledTimerWithTimeInterval:0.032f 
                                 target:self 
                               selector:@selector(startEventFromTimer:) 
                               userInfo:@(theIntYouWantToPass)
                                repeats:NO];

关于objective-c - 使用 NSTimer 以及从常规调用相同的方法传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665441/

相关文章:

ios - 使用 block 中访问 self 的方法是否安全

objective-c - 我可以使用一个 viewController 而不是 5 个吗?

objective-c - 为什么不是 drawRect : getting called?

cocoa - 如何实现像警报这样的谷歌通知程序

iphone - 如何正确地使 NSTimer 失效

ios - 如何实现滑动并按住手势识别器?

ios - j2objc 作为 XCode 中的子项目

objective-c - NSCalendar 崩溃应用程序

ios - 确定 currentPlaybackTime 是否为提示点

ios - NSTimer 不工作 swift