2010-10-27 1 views
0

Я пытаюсь найти разницу между двумя NSDates. Это сработало и напечатало разницу, но никогда больше не работало. Я не помню, чтобы что-то изменилось после того, как он работал. Есть идеи? О, и это не вызывает ошибки, и если я прокомментирую этот фрагмент, все будет работать.iPhone timeIntervalSinceDate не бросает ошибку или работает

//----------- 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 

ответ

1

EDIT: Глядя на дополнительный код, который вы добавили, вы не подпорных touchBegins. Попробуйте это:

[[NSDate date] retain]; 

Я удивлен, что это не просто сбой, когда вы звоните timeIntervalSinceDate :) - на самом деле, это, но вы поймать исключение, а затем игнорируя его!

В @catch следует добавить исключение из-за исключения; именно это следует сделать это:

} @catch (NSException *ex) { 
    NSLog(@"Exception getting time interval : %@", ex); 
} 

Вы можете увидеть сообщение журнала, который говорит что-то вроде «непризнанного селектора» - вы, конечно, увидеть что-то интересное, я буду держать пари!


Посмотрите на это: http://www.cplusplus.com/reference/clibrary/cstdio/printf/

% d представляет собой целое число - попробуйте% е :)

+0

Спасибо, я проверю по ссылке. % f, похоже, не помогло, но это шаг в правильном направлении :) – rd42

+0

Вы на 100% уверены, что touchEnds не ноль? Попробуйте добавить 'NSLog (@"% @ ", touchEnds);' там тоже – deanWombourne

+0

да, это не ноль, он получает несколько строк выше этого. Я добавил больше кода и консоли, прочитанной выше по вопросу. Спасибо за вашу помощь. – rd42