0

残りの秒数を表示するカウントダウンを作成しようとしています。

以下の例では 10 秒に設定されていますが、出力は 8 秒です。

NSDate *currentDate = [NSDate date];
NSDate *finishDate = [NSDate dateWithTimeInterval:10 sinceDate:currentDate];

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDateComponents *components = [calendar components:NSSecondCalendarUnit|NSMinuteCalendarUnit|NSHourCalendarUnit | NSDayCalendarUnit| NSMonthCalendarUnit | NSYearCalendarUnit
                                           fromDate:currentDate
                                             toDate:finishDate
                                            options:0];
NSInteger hour_ = [components hour];   
NSInteger minute_ = [components minute];
NSInteger second_ = [components second]; 

ログ

currentDate = 2012-06-05 03:13:10 +0000
finishDate_ = 2012-06-05 03:13:19 +0000
second_ = 8
4

1 に答える 1

0

さて、私はあなたのコードをコピーして貼り付けました。これらの行を一番下に追加しました:

NSLog(@"%@", currentDate);
NSLog(@"%@", finishDate);
NSLog(@"%d, %d, %d", hour_, minute_, second_); 

iOS 5.1 を実行している iPad シミュレーターで Xcode 4.3.2 を使用すると、完全に機能しました。

2012-06-05 00:19:34.341 Testing App[59813:fb03] 2012-06-05 04:19:34 +0000
2012-06-05 00:19:34.342 Testing App[59813:fb03] 2012-06-05 04:19:44 +0000
2012-06-05 00:19:34.343 Testing App[59813:fb03] 0, 0, 10

異なるバージョンを使用していますか?

于 2012-06-05T04:14:12.507 に答える