我使用像这样的计时器调用一个对象:
NSTimer *mainTimer = [NSTimer scheduledTimerWithTimeInterval:1
target:thisTimer
selector:@selector(increaseSeconds)
userInfo:nil
repeats:YES];
id喜欢做的是,函数increaseSeconds
设置调用它的对象的属性。像这样:
- (void)increaseSeconds {
parent.label.text = whatever....;
}
答案 0 :(得分:0)
在创建'thisTimer'对象时,看起来最简单的方法是使用'initWithParent:'方法。
答案 1 :(得分:0)
这里的困惑是,即使你能做到这一点(你真的不能有效),“调用它的对象”可能是NSTimer
或NSRunLoop
,这可能不是什么你的意思是。没有办法将它连接到您可能正在考虑的其中一个对象。如果你查看你的计时器,你就不会以任何方式注册你的计时器。
您可以在NSTimer
处使用这些技巧。最明显的是将调用者存储在userInfo
字典中。这就是它的用途。但我怀疑你应该重新考虑你的设计。创建NSTimer
target
不是self
的{{1}}是非常不寻常的,这表明您的职责分配不正确。在为Cocoa设计时,请确保您对MVC有很好的把握。