将对象传递给NSTimer中的方法

时间:2011-04-02 17:39:23

标签: objective-c nstimer

这是一个非常愚蠢的问题。如何使用NSTimer将对象传递给方法? 我的意思是这样的 -

我在BigView.m中有一个方法,它有一个名为doSomethingWithClass:的方法。

- (void)doSomethingWithClass:(CustomClass *)class {
    NSLog(@"Something was done");
}

在另一个名为CustomClass的班级中,我有一个NSTimer -

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:bigView selector:@selector(doSomethingWithClass:) userInfo:nil repeats:NO];

其中bigView是BigView的一个实例。现在我想传递一个CustomClass的整个实例作为方法doSomethingWithClass:中的参数。我该怎么做?

1 个答案:

答案 0 :(得分:3)

如果您不需要参考计时器,请使用更简单的performSelector:withObject:afterDelay: method

[bigView performSelector:@selector(doSomethingWithClass:)
              withObject:customClass
              afterDelay:0.5];

(要取消它,use +cancelPreviousPerformRequestsWithTarget:…。)