2017-04-05 3 views
0

は、以下で説明するように、そのアクティビティを開始するときに何度も繰り返し呼び出す更新メソッドを作成しました。出力を取得したら、このメソッドの関数を停止したいと考えています(今、出力があっても実行し続けます)。それを行う可能性がある場合は教えてください。自動リフレッシュの1つのメソッド

-(void)reloadMethod{ 
[self downloadProgressAudio]; 
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC); 
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
    [self reloadMethod]; 
}); 
} 

答えて

0

を行い、ここで

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 
     target:self 
     selector:@selector(reloadMethod) 
     userInfo:nil 
     repeats:YES]; 

タイマーを使用することができますそのテストを含める必要があり、出力がない場合にのみ関数を再度呼び出す必要があります。

if !outputDataExists { 
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
     [self reloadMethod]; 
    }); 
} 
+0

ありがとうございました、あなたのコンセプトの仕事。 –

-1

あなたが繰り返し実行を終了すれば、あなたは出力を得るまで、このメソッドを呼び出しておく必要がある場合は、この

[timer invalidate]; 
timer = nil; 
+0

質問の全体のポイントはどのように停止する必要があり、その実行を認識することでした - あなたはあなたが [タイマー無効化]を使用してい – Russell

+0

その点に対処していません。 timer = nil; を実行すると、実行を停止します。つまり、いつ停止するかは手元にあります。だから、あなたはいつそれが止まるかを知っている。 –

+0

あなたのコメントをありがとう、私はそれが今働いている! –

関連する問題