티스토리 뷰

iOS

iOS ) String -> URL시 nil이 반환될 때

Zedd0202 2017. 11. 7. 13:39
반응형


안녕하세요 :)  Zedd입니다.

오늘 어떤분의 에러를 찾다가 이런경우도 있구나 싶어서 글을 씁니다!!

긴~~주소 String을 URL타입으로 바꾸는 과정에서,



url이 nil이 되는 상황이 있는데요!!

주소에 한글이 들어가거나, 스페이스등이 들어가면 이렇게 url이 nil이 될 수 있다고 해요 :)


<해결방법>


인코딩을 해주면 됩니다. 

if let encoded = urlStr.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed), let myURL = URL(string: encoded) {

       print(myURL)

}


이렇게 해주면, 잘 나오게 된답니다. 

addingPercentEncoding 하는일은 지정된 Set에 없는 모든 문자를 백분율로 인코딩된 문자로 바꾸어 새로운 문자열을 반환해주는 함수에요. XD

 그러니까 위에서 encoded는 String타입이 되는거죠!

그걸 URL타입으로 바꾼것이 myURL입니다. :)


반응형