iPhone timeIntervalSinceDate不会抛出错误或工作

时间:2010-10-27 13:55:59

标签: iphone datetime nstimeinterval

我正试图找出两个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 个答案:

答案 0 :(得分:1)

编辑:查看您添加的额外代码,您不会保留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:)