自定义RunLoop模式

Rob*_*son 0 objective-c

我在这做错了什么?我错过了什么?

- (void)scheduleTimer
{
    NSTimer *timer = [NSTimer timerWithTimeInterval:0.15
                                             target:self
                                           selector:@selector(wtf:)
                                           userInfo:nil
                                            repeats:NO];

    // This works fine
//  [[NSRunLoop currentRunLoop] addTimer:timer
//                               forMode:NSDefaultRunLoopMode];

    // This doesn't work at all - how come?
    [[NSRunLoop currentRunLoop] addTimer:timer
                                 forMode:@"MyCustomRunLoopMode"];   
}
- (void)wtf:(NSTimer *)aTimer
{
    NSLog(@"wtf");
}
Run Code Online (Sandbox Code Playgroud)

NSRunLoop的文档似乎表明可以创建自定义的runloop模式.我错过了什么吗?

(这是Mac OS X中标准GUI应用程序的主线程)


更新:请注意,我提到这是在标准应用程序的主线程上.因此,我自己并没有运行runloop.这一切都由NSApplication处理.

Chu*_*uck 5

你在运行该模式的runloop吗?如果runloop永远不会在该模式下运行,那么只添加一个计时器就不会做任何事情.