2009-02-26 7 views
0

Burada yanlış olan ne yapıyorum? Neyi kaçırıyorum?Özel RunLoop Modu

- (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"); 
} 

NSRunLoop belgeleri bir özel runloop modlarını oluşturabilir işaret gibi görünüyor. Bir şey mi eksik? Bu sözü Bildirimi standart uygulamanın ana iş parçacığı üzerinde oldu:


Güncelleme (Bu Mac OS X standart GUI uygulamasının ana iş parçacığı üzerinde). Bu nedenle, runloop'u kendim çalıştırmıyorum. Her şey NSApplication tarafından ele alındı.

cevap

5

Bu mod için runloop çalıştırıyor musunuz? Bir zamanlayıcı eklemek, runloop asla bu modda çalışmazsa bir şey yapmayacaktır.

1

currentRunLoop yalnızca ortak modlarda çalışabilir mi?

Ayrıca denemelisiniz: - (BOOL) RunMode: (NSString *) modu beforeDate: (NSDate *) limitDate

ile şeyleri kontrol: -

currentMode (NSString *) - -Tom