2016-07-15 3 views
1

API 호출을 트리거하는 버튼을 누르면 사용자 위치를 요청하고 있습니다. 그러나 requestLocation() 호출에서 위도/경도 값을 얻기 전에이 API 호출을하고 싶지 않습니다. 내 선택 변수가 latitude == nil || longitude == nil인지 확인하면서 while 루프를 폴링 할 수 있다고 생각했지만 while 루프는 영원히 앉아있다. 그 값을 기다리는 것이 필요합니다. API 호출에 nils를 보내면 위치를 얻는 데 몇 초가 걸리기 때문에 기다리지 않아야합니다. 위도/경도 값이 requestLocation() 호출에서 설정 될 때까지 API 요청이 호출되지 않도록하려면 어떻게해야합니까?계속하기 전에 requestLocation을 기다리는 방법?

+1

대신 단추를 눌렀을 때 통화를, 당신은 위도/경도 값 –

+0

이 완료 처리기를 추가받을 때 전화를? – Dershowitz123

답변

0

위치가 업데이트되는 위임자에서 API 호출을 만듭니다. DidUpdateLocation. 나는 그 이름을 정확하게 기억하지 못한다.

Didupdatelocations 첫 번째 위치는 이전 위치이므로 요청을 보내는 데 사용한 위치가 정확한지 확인하십시오.

1

는이 당신을 도울 것입니다 CLLocationManagerDelegate

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 
{ 
    locationManager.stopUpdatingLocation() 
    let location = locations.last! as CLLocation 

    latittude = String(format: "%f", location.coordinate.latitude) 
    longitude = String(format: "%f", location.coordinate.longitude) 

// call your api from here 

} 

희망의 대리자 메서드에서 API를 호출합니다.

감사

관련 문제