将对象传递给 NSTimer 中的方法

发布于 2024-10-30 01:31:52 字数 592 浏览 0 评论 0原文

这真是一个愚蠢的问题。如何使用 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: 方法中的参数传递。我该怎么做?

This is a really dumb question. How would you pass an object to a method using an NSTimer?
I mean something like this -

I have a method in BigView.m that has a method called doSomethingWithClass:.

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

In another class called CustomClass, I have an NSTimer -

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

Where bigView is an instance of BigView. Now I want to pass an entire instance of CustomClass as the parameter in the method doSomethingWithClass:. How do I do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

Saygoodbye 2024-11-06 01:31:52

如果您不需要引用计时器,请使用更简单的 performSelector:withObject:afterDelay: 方法

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

(要取消它,使用 +cancelPreviousPerformRequestsWithTarget:...。)

If you don't need to refer to the timer, use the simpler performSelector:withObject:afterDelay: method.

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

(To cancel it, use +cancelPreviousPerformRequestsWithTarget:….)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文