В Objective-C я запускаю таймер каждые 0,1 секунды и увеличиваю двойное значение (секунды) на 0,1.
Так что он должен продолжать отсчитывать время на 1/10 секунды.Когда он запускается, он проверяет некоторые операторы if
- else
, чтобы узнать, равно ли время (секунды) 3, 9, 33 и т. Д., Но они никогда не срабатывают.Я полагаю, это из-за того, что двойные числа представлены в битах, то есть десятичная дробь является приближением, а не целым числом.
Как я могу это исправить, чтобы мои операторы срабатывали?
-(void)timeSeconds:(NSTimer*)theTimer {
seconds = seconds + 0.1;
NSLog(@"%f", seconds);
if (seconds == 3.0) {
[player pause];
[secondsTimer invalidate];
}
else if (seconds == 9){
[player pause];
[secondsTimer invalidate];
}