Objective-C를 시작했는데 여전히 얻지 못했던 변수 범위에 대해 설명합니다. 나는 그것에 대해 조사했지만 여전히 잘못하고있는 것을 잡을 수 없었다.Objective-C의 변수 범위
저는 두 점 사이의 x, y 차이를 줄 코드를 만들려고합니다. 첫 번째 IF 내의 첫 번째 NSLog는 pointWhereDragBegan.x 및 .y에 대한 올바른 값을 표시하지만 두 번째 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);
}
}
두 번째'if' 문에'pointWhereDragBegan'을 로깅하지 않습니다. 당신은'pointWhereDragEnded'와 빼기 결과를 기록하고 있습니다. –
만약 내가 두 번째 경우에 pointWhereDragBegan을 기록한 경우, -1.998683과 0이 될 것입니다. – rantunes