设置对象调用者的属性?

时间:2012-09-14 01:44:04

标签: objective-c

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这里的困惑是,即使你能做到这一点(你真的不能有效),“调用它的对象”可能是NSTimerNSRunLoop,这可能不是什么你的意思是。没有办法将它连接到您可能正在考虑的其中一个对象。如果你查看你的计时器,你就不会以任何方式注册你的计时器。

您可以在NSTimer处使用这些技巧。最明显的是将调用者存储在userInfo字典中。这就是它的用途。但我怀疑你应该重新考虑你的设计。创建NSTimer target不是self的{​​{1}}是非常不寻常的,这表明您的职责分配不正确。在为Cocoa设计时,请确保您对MVC有很好的把握。