0

NSMutableArrayタッチタイムギャップを保存したいのですが、問題が発生しました。
NSMutableArrayカウントは。だけ1です。私に何ができる?

NSInteger count = 0;
float firstTempTime = 0;
float nTempTime = 0;
float nTouchTimegap = 0;

#pragma mark –
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
messageLabel.text = @"Touches Began"; 
[self updateLabelsFromTouches:touches];  
NSArray *array = [touches allObjects];   
for (UITouch *touch in array){
    count = count +1;
    NSLog(@"began touch count: %d", count);

    nTempTime = [touch timestamp];
    NSLog(@"n TempTime stamp : %lf", nTempTime); 

    if (count == 1) {
        firstTempTime = [touch timestamp];
    }

    else {
        nTouchTimegap = nTempTime - firstTempTime;
        firstTempTime = nTempTime;
    }
    NSLog(@"nTouchTimegap : %lf", nTouchTimegap);

    nTouchTimegapArray = [NSMutableArray arrayWithCapacity:count];
    [nTouchTimegapArray addObject:[NSNumber numberWithFloat: nTouchTimegap]];


    for(id obj in nTouchTimegapArray){
        NSLog(@"nTouchTimegapArray : %i", [nTouchTimegapArray count]);
        NSLog(@"nTouchTimegapArray : %@", obj);
    }

}
4

2 に答える 2

0

私はそれを綴る必要があると思います:

nTouchTimegapArray = [NSMutableArray arrayWithCapacity:count];
[nTouchTimegapArray addObject:[NSNumber numberWithFloat: nTouchTimegap]];

そのシーケンスは、反復ごとに配列を効果的に消去します。配列に複数のエントリを持つことはできません。

最初の行をループの外に移動し、メソッドのすべての呼び出しからのタッチを蓄積したい場合は、それをinitルーチンなどに移動しviewDidLoadます。

于 2012-12-16T20:44:24.853 に答える
0

touchesBegan:画面に触れると呼び出され、2 本目の指で画面に触れると再度呼び出されます。

あなたは見てみる必要がありtouchesEnded:ますtouchesCancelled:

于 2012-12-16T19:54:36.317 に答える