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