1

我使用这样的计时器调用对象:

NSTimer *mainTimer = [NSTimer scheduledTimerWithTimeInterval:1
                                                      target:thisTimer
                                                    selector:@selector(increaseSeconds)
                                                    userInfo:nil
                                                     repeats:YES];

id 喜欢做的是让函数increaseSeconds设置调用它的对象的属性。像这样的东西:

  - (void)increaseSeconds {
       parent.label.text = whatever....;    
    }
4

2 回答 2

0

看起来最简单的方法是在创建“thisTimer”对象时使用“initWithParent:”方法。

于 2012-09-14T01:51:47.220 回答
0

这里的困惑是,即使你可以这样做(你不能真正有效地),“调用它的对象”是NSTimeror NSRunLoop,这可能不是你的意思。无法将其与您可能正在考虑的对象之一联系起来。如果您查看计时器,则不会以任何方式向其注册呼叫者。

您可以在此处使用一些技术NSTimer。最明显的是将调用者存储在userInfo字典中。这就是它的用途。但我怀疑你应该重新考虑你的设计。创建who is not是非常不寻常NSTimer的,这表明您的职责分配不正确。在为 Cocoa 进行设计时,请确保您很好地掌握了MVC 。targetself

于 2012-09-14T03:08:21.667 回答