0

NSTimer20 秒ごとに関数を実行するために使用したいのですがNSTimer、関数に入れNSThreadます。コードは次のようになります。

-(void)func1
{
   [NSThread detachNewThreadSelector:@selector(func2)   
                         toTarget:self withObject:nil];
}
-(void)func2
{
   [NSTimer scheduledTimerWithTimeInterval:3 target:self          
    selector:@selector(func3) userInfo:nil repeats:YES];
}
-(void)func3
{
  //do something,but the function seems never be executed
}

したがって、問題は、func3 がNSTimerin func2 によって決して実行されないことです。何人かの人々は、NSTimer唯一の run in main thread.is it true??so Can't NSTimerstart in a NSThreadfunction?と言います。

4

2 に答える 2

0

次の方法で、現在のスレッドの実行ループにタイマーを追加できます

(void)addTimer:(NSTimer*)aTimer forMode:(NSString*)mode

編集:

役立つリンク: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Multithreading/CreatingThreads/CreatingThreads.html#//apple_ref/doc/uid/10000057i-CH15-SW25

于 2013-03-12T02:42:25.473 に答える