我不能让NSTimer开火吗?

时间:2012-02-20 23:32:33

标签: nstimer

我无法触发我的(或任何)NSTimer对象。我尝试了各种迭代,包括使用调度和非调度计时器以及使用with Target和selector以及NSInvocation方法。我最近的代码尝试在这里:

Timer *myTimerController = [Timer alloc];


NSMethodSignature *mysignature = [Timer instanceMethodSignatureForSelector:@selector(targetMethod)];
NSInvocation *myInvocation = [NSInvocation invocationWithMethodSignature:(mysignature)];
[myInvocation setTarget:myTimerController];
[myInvocation setSelector:@selector(targetMethod)];
[myInvocation invoke];

NSTimer *myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 invocation:myInvocation repeats:NO];
NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
[runLoop addTimer:myTimer forMode:NSDefaultRunLoopMode];

我知道调用方法有效,因为[myInvocation invoke]给了我NSLog消息:收到的消息(在这个时刻就是我的targetMethod中的所有内容)。当我使用目标选择器而不是NSInvocation时也是如此。调试器还显示我的所有对象都已创建。

0 个答案:

没有答案