私は2つの時点の間の時間を取得しようとしています。何が間違っているのかわかりませんが、NSLogで「nan」の結果が表示されます。合計時間は:nan秒でした。ifステートメントから[timerstart]と[timerstop]を削除すると、通常の結果がdoubleになります。
- (void) filterFrequency {
Timer *timer = [[Timer alloc] init];
if (self.currentFrequency > 2000 && pointInTime % 2 == 0)
{
[timer startTimer];
pointInTime = pointInTime + 1;
}
else if (self.currentFrequency > 2000 && pointInTime % 2 == 1)
{
[timer stopTimer];
pointInTime = pointInTime + 1;
NSLog(@"Total time was: %f seconds", [timer timeElapsedInSeconds]);
}
これがTimer.h#importです
@interface Timer : NSObject {
NSDate *start;
NSDate *end;
}
- (void) startTimer;
- (void) stopTimer;
- (double) timeElapsedInSeconds;
- (double) timeElapsedInMilliseconds;
- (double) timeElapsedInMinutes;
@end
Timer.m
#import "Timer.h"
#import "ListenerViewController.h"
@implementation Timer
- (id) init {
self = [super init];
if (self != nil) {
start = nil;
end = nil;
}
return self;
}
- (void) startTimer {
start = [NSDate date];
}
- (void) stopTimer {
end = [NSDate date];
}
- (double) timeElapsedInSeconds {
return [end timeIntervalSinceDate:start];
}
- (double) timeElapsedInMilliseconds {
return [self timeElapsedInSeconds] * 1000.0f;
}
- (double) timeElapsedInMinutes {
return [self timeElapsedInSeconds] / 60.0f;
}
@end