iPhone timeIntervalsIntate не бросает ошибку или работать
-
26-09-2019 - |
Вопрос
Я пытаюсь найти разницу между двумя NSDates. Это работало один раз и напечатало разницу, но никогда не работала снова. Я не помню, что меняется покойся за один раз. Есть идеи? Ох, и это не бросает ошибку, и если я прокомментирую этот фрагмент, все работает.
//----------- Touches Begin
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
touchBegins = [NSDate date];
NSLog (@" Tap: %d ", tapTotal);
NSLog (@"<=========================>");
NSLog (@"Method: touchesBegines & Ends");
NSLog (@" Touch Begin: %@", touchBegins);
// [self updateLabelsFromTouches:touches];
}
//----------- Touches End
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
touchEnds = [NSDate date];
NSLog (@" Touch Ends : %@", touchEnds );
@try {
NSLog(@"%@", touchEnds);
NSTimeInterval elapsed = [touchEnds timeIntervalSinceDate:touchBegins];
NSLog (@" Finger Down: %f", elapsed);
} @catch (NSException *ex) {}
NSLog (@" ");
[self updateLabelsFromTouches:touches];
}
Приставка:
[Session started at 2010-10-27 10:27:18 -0400.]
Tap: 0
<=========================>
Method: touchesBegines & Ends
Touch Begin: 2010-10-27 14:27:22 GMT
Touch Ends : 2010-10-27 14:27:22 GMT
Решение
Редактировать: Глядя на дополнительный код, который вы добавили, вы не сохраняете TouchBegiens. Попробуй это :
[[NSDate date] retain];
Я удивлен, что это не просто разбивается, когда вы называете TimeInterAlsIncedate :) - На самом деле, это но вы ловить исключение, а затем игнорируя его!
Вы должны добавить немного записи исключения в вашем @Catch; Просто это должно сделать это:
} @catch (NSException *ex) {
NSLog(@"Exception getting time interval : %@", ex);
}
Вы можете увидеть журнальное сообщение, которое говорит что-то вроде «непризнанного селектора» - вы, безусловно, видим что-то интересное, что я поставил!
Посмотри на это : http://www.cplusplus.com/Reference/Clibrary/cstdio/printf/
% D - целое число - попробуйте% f :)