2014-01-24 5 views
2

내 프로젝트 중 하나에서 현재 사용자 위치를 Appdelegate의 웹 서버에 보내야합니다. 그것은 사용자가 권한을 얻으려면 표시된 경고의 확인 버튼을 클릭하면 잘 작동합니다.하지만 내가 처음 응용 프로그램을 실행할 때 권한 경고는 rootview Controller로오고 나서 늦게 표시됩니다. 위도와 경도 cllocation을 얻는 것은 0.00000f입니다. 어떻게하면 appdelegate에서 강제로 권한을 얻을 수 있습니까? 아니면 강제로 사용자 위치를 얻을 수 있습니까?사용자 현재 위치 찾지 못함

두 번째로 생각하면 사용자가 자신의 위치를 ​​축을 거부하면 경고에 다른 시간이 표시되지 않습니다.이 경우 cllocation을 가져 오는 위도와 경도도 0.00000f입니다. 권한 경고 2 또는 2 회 이상을 표시하는 방법 같은 질문을 할 수 있습니다.

해피 기본와 두 번째 것은 사과에 대한

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

에서 윈도우의 rootViewController을 설정하기 전에 CLLocationManager을 설정해야합니다 귀하의 시나리오에는 당

+0

장치 또는 시뮬레이터에서 실행 중이십니까? – chandru

+0

메신저가 장치에서 실행 중입니다 .. – chakshu

답변

0

코딩에만 경고 경우 일단 질문 사용자가 허가 한 후 전화 CLLocationManagerDelegate method

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 

귀하의 현재 위치의 위도와 경도를 가져 오십시오. 사용자가 위치 서비스를 거부 한 경우 this을 참조해야합니다.

+0

경고를 표시하지 않습니다. :( – chakshu

+0

경고를 한 번 다시 한 번 완전히 다시 설치하려고 시도하면됩니다. –

+0

내 생각에 호의를 베풀 수 있습니다. 어떻게 할 수 있습니까? 사용자는 권한을 거부합니다. 그/그녀의 위치를 ​​보여줘야합니다. 사용자에게 애플리케이션을 재설치하라는 경고를합니다. – chakshu

0

AppDelegate의 인터페이스에 CLLocationManagerDelegate을 설정해야합니다.

CLLocationManager를 시작하여 위치를 가져 오려면 CLLocationManager 클래스의 일부 속성을 설정해야합니다. 이것은 다음의 코드를 구현하는 경우 : 사용자의 현재 위치에있을 것입니다

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { 
    CLLocation *userLocation = [locations lastObject]; 
} 

userLocation 객체를 다음과 같이

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    // Location manager settings 
    CLLocationManager *locationManager = [[CLLocationManager alloc] init]; 
    locationManager.delegate = self; 
    locationManager.distanceFilter = kCLDistanceFilterNone; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
    [locationManager startUpdatingLocation]; 

    // Your code for rootViewController settings here 
} 

그런 다음 CLLocationManagerDelegate 방법을 구현한다.