0

2 つの 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
4

1 に答える 1

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 を試してください :)

于 2010-10-27T13:58:31.577 に答える