2017-11-02 30 views
0
let stringOFDirection: String = "https://maps.googleapis.com/maps/api/directions/json?origin=23.0723857839751,72.5160750795044&destination=23.057534,72.577191&waypoints=optimize:true|23.0557874,72.465833" 

let directionsURL = URL(string: stringOFDirection)! 

문제는 내가 도와주세요변환 구글 방향 JSON 문자열 URL이

작동하지 않음이 URL에서 솔루션 만 알고

전무 directionsURL이입니다 URL에! 당신이 URL을 만들기 전에이 추가

+0

쉼표를 '% 2C'로 바꾸어보십시오. – Callam

+0

"|" URL에서 불법입니다. –

+0

나는'|'이 문제라고 생각한다. 최소한 그것 없이는 작동하지만,'% 7C'로 대체하는 것이 트릭을해야한다. 그러나 매우 역동적이지 않다. –

답변

5

시도 : stringOFDirection.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!

+0

감사합니다 ... – Prototype

+1

안전하게 포장을 푸는 것을 잊지 마십시오. 정답을 수락하십시오. –

2

그것은 같은되어야한다 :

let stringOFDirection: String = "https://maps.googleapis.com/maps/api/directions/json?origin=23.0723857839751,72.5160750795044&destination=23.057534,72.577191&waypoints=optimize:true|23.0557874,72.465833" 

if let encodedStringOFDirection = stringOFDirection.addingPercentEncoding(withAllowedCharacters: . urlQueryAllowed), let directionsURL = URL(string: encodedStringOFDirection) { 
    print(encodedStringOFDirection) 

    // directionsURL is not nil and it works as expected... 
} 

문자열이 URL에 대한이 인식 할 수 있도록 인코딩되어야한다.

또한, 나는 선택이 충돌에 직면하지 않을 있는지 확인 바인딩 대신 (느낌표 URL(string: stringOFDirection)!)을 풀기 힘 으로 선언하는 것이 좋습니다 것입니다.

+0

도와 드리겠습니다. 대답을 수락하는 것을 잊지 마십시오 (초록색 체크) :) FYI, 대답을 수락하면 : - 응답자에게 평판 포인트를 +15 점 부여합니다. - 당신에게 (asker) +2 평판 포인트를줍니다. - 가장 중요한 점은 시청자에게이 답변이이 문제에 대한 적절한 해결책임을 알리는 것입니다. –