親愛なるコミュニティ。 は、私がセットアップNSTimerにしてみてください:NSTimer in NSOperationサブクラス
@interface GetExternalInfo : NSOperation {
NSTimer *keepAliveTimerMain;
@property (nonatomic,retain) NSTimer *keepAliveTimerMain;
.M:
@synthesize keepAliveTimerMain
-(void) main;
{
self.keepAliveTimerMain = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(keepAlive:) userInfo:nil repeats:YES];
[keepAliveTimerMain fire];
[[NSRunLoop currentRunLoop] addTimer:self.keepAliveTimerMain forMode: NSDefaultRunLoopMode];
BOOL timerState = [keepAliveTimerMain isValid];
NSLog(@"STAT:Timer Validity is: %@", [email protected]"YES":@"NO");
- (void)keepAlive:(NSTimer *)theTimer
{
BOOL currentState = [self isCancelled];
NSLog(@"STAT:cancelled state is %@.\n",[email protected]"YES":@"NO");
}
ログに
2011-02-02 18:58:31.041 雪[54705を:5d07] STATは、 :キャンセルされた状態 はNOです。 2011-02-02 18:58:31.042 雪[54705:5d07] STAT:タイマ有効 は次のとおりです。YES
私は一度だけこれを参照してください。 5秒ごとに次の繰り返しを試みることはありません この場合は、 GCが有効になっています。
私はこれをやろうとしていましたが、間違った場所にいると思います。私はinitメソッドからそれをやろうとしていました。私が今理解しているように、initメソッドは他のスレッドで動作しています。タイマーは起動できません。編集された質問に見られるように私は結果を – Alex