0

目標 c の現在の時刻に 1 ミリ秒を追加する方法はありますか。サーバーからタイムスタンプを取得し、ミリ秒単位で繰り返し表示したい (システム時刻を使用したくない)。

前もって感謝します 。

4

2 に答える 2

1

タイムスタンプを NSDate に読み込みます。使うより

+ (id)dateWithTimeInterval:(NSTimeInterval)seconds sinceDate:(NSDate *)date

動作するはずです。

于 2013-04-24T12:17:39.443 に答える
0

NSTimerクラスのオブジェクトを使用する必要があります。サンプルコード:

    -(void)startTimer {

        theTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/1000.0 target:self selector:@selector(updateTimer) userInfo:nil repeats:YES];

        //the method updateTimer will be called once every millisecond
    }

    -(void)updateTimer {
        //add one millisecond to the global time variable and display it in a label
    }

    -(void)stopTimer {
        [theTimer invalidate];  //pauses the timer
    }

編集

グローバルな Time 変数を使用するにNSDateは、おそらく正しいクラスです。たとえば、時間間隔を使用してオブジェクトを初期化できます。600 秒前:

NSDate *globalDateTime = [[NSDate alloc] initWithTimeIntervalSinceNow:-600];

時間に 1 ミリ秒を追加するには:

globalDateTime = [globalDateTime dateByAddingTimeInterval:1.0/1000.0];

そして、グローバル時間変数を文字列に設定するには:

NSDateFormatter *dateFormatter      = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm:ss"]; // use yyyy-MM-dd if you need to show the year, month or day
NSString *dateTimeString            = [dateFormatter stringFromDate:globalDateTime];

NSTimeInterval クラスは、「10,000 年の範囲でサブミリ秒の精度を実現します」。

詳細については、NSDate に関する Appleのドキュメントを参照してください。

于 2013-04-24T12:23:03.067 に答える