2016-08-03 7 views
0

으로 호출됩니다. 내 코드에서 사용자 위치를 초기화해야합니다. 정상적으로 작동합니다.사용자 위치가 자동으로

하지만 언제든지 내 위치를 변경하고 싶을 때 (내 주소를 선택하거나 화면에서 스윕하면) 내 앱에서 나를 내 사용자 위치로 안내합니다.

that post에 약간의 답이 있습니다. 그러나 나는 didUpdateUserLocation()으로 전화하지 않습니다. 그래서 나는 무엇을해야할지 모른다.

자주 전화 하시겠습니까? ViewDidLoad()?

내 위치를 초기화하는 코드입니다.

var usrLocation: CLLocationManager! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    if (CLLocationManager.locationServicesEnabled()) { 
     usrLocation = CLLocationManager() 
     usrLocation.delegate = self 
     usrLocation.requestAlwaysAuthorization() 
     usrLocation.requestLocation() 
     usrLocation.startUpdatingLocation() 
    } 
    mapView.delegate = self 
} 

또한, 난 그냥 내 usrLocation.requestLocation() 기능을 삭제할 수 없습니다, I 앱 발사에서 내 사용자에 중심을해야합니다. 나는 그것을 다른 곳으로 부르는 것을 생각했지만, 나는 어디에 있는지 모른다. 단 말했듯이

+1

'requestLocation()'과 'startUpdatingLocation()'을 모두 호출하지 마십시오. 사용자의 현재 위치를 한 번만 가져 오려면'requestLocation()'을 호출하고, 위치를 지속적으로 업데이트하려면'startUpdatingLocation()'을 호출하십시오. – dan

+0

아, 그랬습니다. 고맙습니다. 당신은 진정한 대답에 넣어야합니다 :) –

답변

0

그래서, 문제는 내가 전화를 안이었다 requestLocation()startUpdatingLocation().

그래서 지금 내 코드는 그렇게이며, 그것은 완벽하게 작동합니다 :

var usrLocation: CLLocationManager! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    if (CLLocationManager.locationServicesEnabled()) { 
     usrLocation = CLLocationManager() 
     usrLocation.delegate = self 
     usrLocation.requestAlwaysAuthorization() 
     usrLocation.requestLocation() 
    } 
    mapView.delegate = self 
} 
1

구현 한
usrLocation.startUpdatingLocation()

이것은 위치 업데이트를 계속 유지하므로 다른 위치를 가리키면 바로 사용자 위치가 업데이트됩니다.

코드를 제거하면 코드가 작동합니다.

+1

나는 20 분 전에 그것을 게시 :) 감사합니다 –

+1

물론, 내가 그걸 확인하지 않았지만, 당신은 해결책을 찾을 :) –