2010-04-23 5 views
1

void 함수에서 생성 된 lat 및 long 값을 가져 와서 다른 함수 내에서 사용하려고합니다. 어떤 도움이든지 감사드립니다.어떻게 목표에서 생성 된 변수를 사용할 수 있습니까? void 함수?

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
      fromLocation:(CLLocation *)oldLocation 
{ 
float latDeg = newLocation.coordinate.latitude; 
NSLog(@"Lat: %g", latDeg); 

float longDeg = newLocation.coordinate.longitude; 
NSLog(@"Lat: %g", longDeg); 
} 

latDeg 및 longDeg 변수를 사용하고 싶습니다.

+0

하지만 이미 코드에서 사용하고 있습니다. – kennytm

답변

3

클래스의 인스턴스 변수로 latDeglongDeg을 선언하십시오. 인스턴스 변수의 속성을 선언하고 변수의 모든 액세스에이 속성을 사용하는 것은 선택 사항이지만 권장됩니다.

0

동일한 클래스에서 다시 사용하려면 클래스 구현 후에 선언 할 수 있습니다. 예를 들어`@implementation LocationClass float latDeg; 플로트 longDeg

  • (공극)을 locationManager (CLLocationManager *) 관리자 didUpdateToLocation (CLLocation *)를 newLocation fromLocation (CLLocation *) oldLocation { latDeg = newLocation.coordinate.latitude; NSLog (@ "Lat : % g", latDeg);

    longDeg = newLocation.coordinate.longitude; NSLog (@ "Lat : % g", longDeg); } ' 이면 충분합니다. 또는 AppDelegater에서 이들을 선언하고 다음과 같이 사용할 수 있습니다.

    YourAppDelegate delegate; delegate = (YourAppDelegate) [[UIApplication sharedApplication] delegate]; float currVar = [delegate-> longDeg]; 저장할 수있는 위치

0

A) 그들에게 확인 전역 변수

B)을 locationManager 당신이 그것을 사용하고있는 클래스의 속성. 이제 그 두 번 속성을 추가 할 수 있는지 확인 클래스를했다 귀하의 위도 또는 경도는

입니다. c) 위도와 경도를 취하는 다른 함수로 함수를 확장하고 필요에 따라 변수에 씁니다.

내가 가장 간단하고 깨끗한 버전이기 때문에 버전 b를 강력히 추천합니다.하지만 어느 시점에서 OCP에 가장 해를 입히지 않는 유일한 버전입니다.

관련 문제