iPhone timeIntervalSinceDate не выдает ошибку или работает - PullRequest
0 голосов
/ 27 октября 2010

Я пытаюсь найти разницу между двумя 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

1 Ответ

1 голос
/ 27 октября 2010

РЕДАКТИРОВАТЬ: глядя на дополнительный код, который вы добавили, вы не сохраняете touchBegins. Попробуйте это:

[[NSDate date] retain];

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

Вы должны добавить некоторые исключения в ваш @catch; просто это надо сделать:

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

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


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

% d - целое число - попробуйте% f:)

...