2012-01-08 5 views
0

NSTimerを持っていて、MM:SSにフォーマットしようとすると、カウンタは1秒にカウントされて停止します。これは、私が秒数を60で割ると、すぐにお尻が発生します。私は理由が分からないようです。助言がありますか?NSTimerの時間形式が奇数の場合

- (void)showActivity{ 
    int currentTime = [time.text intValue]; 
    int newTime = currentTime + 1; 
    int seconds = newTime % 60; 
    //int minutes = newTime/60; 
    time.text = [NSString stringWithFormat:@"%i", seconds]; 
} 
- (void)delayedMethod { 
    //Delay this action 
    [locationManager startUpdatingLocation]; 
    timeTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(showActivity) userInfo:nil repeats:YES]; 
} 

答えて

0

%dのフォーマット文字列は10進値であり、整数を使用します。これはしばしば奇妙なことにつながります。使用してみてください:

time.text = [NSString stringWithFormat:@"%i:%i", minutes, seconds]; 
+0

があることを試してみましたが、できるだけ早く私は再び分割として、それは動作しませんが、運が... – arynhard

+0

は乗算と除算記号を交換しようとしたん、それは動作します。奇妙な。 – arynhard

+0

NSLogステートメントを入れて実際に得られる整数値を確認しようとしましたか?あなたは2つの異なる方法でtime.textを使用しているようです。最初は整数値を取得しますが、時間のMM:SS表現にリセットします。 time.textがどのように生成されているかのコードを添付すれば助けになります。 – Suz