私は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);
}
}