私はObjective-Cを使い始めていますが、それでもまだ得られなかった変数のスコープに関するものがあります。私はそれについて調べましたが、私はまだ間違っていることをキャッチできませんでした。Objective-Cの可変スコープ
私は2つのポイントのx、yの差を与えるコードを作成しようとしています。最初のIF内の最初のNSLogはpointWhereDragBegan.xと.yの正しい値を示しますが、2番目のIF文でpointWhereDragBeganの値を取得しようとすると、pointWhereDragBegan.xの値は-1.998683と.yになります0.0である。
私はそれが本当にシンプルなものだと確信しています。私は間違いを犯すことはできません。
- (void)drag:(UILongPressGestureRecognizer *)drag{
CGPoint pointWhereDragBegan;
if(drag.state == UIGestureRecognizerStateBegan){
pointWhereDragBegan = [drag locationInView:self];
NSLog(@"Drag started at %f,%f",pointWhereDragBegan.x,pointWhereDragBegan.y);
}
if(drag.state == UIGestureRecognizerStateEnded){
CGPoint pointWhereDragEnded = [drag locationInView:self];
float xDragged = pointWhereDragEnded.x - pointWhereDragBegan.x;
float yDragged = pointWhereDragEnded.y - pointWhereDragBegan.y;
NSLog(@"Drag ended at %f,%f",pointWhereDragEnded.x,pointWhereDragEnded.y);
NSLog(@"The user moved %f, %f",xDragged,yDragged);
}
}
2番目の 'if'ステートメントに' pointWhereDragBegan'を記録していません。あなたは 'pointWhereDragEnded'と減算の結果だけを記録しています。 –
私はその場合、私は2番目の場合、値は-1.998683と0になります。 – rantunes