URL 타입 변환 실패

apwierk·2024년 2월 27일
0

오류 해결

목록 보기
7/9

api에서 url을 받아서 해당 url을 safari로 띄우는 작업을 하는 중

이해가 안되는 문제가 발생했다.

받은 url을 그대로 safari에 띄우고 있는데

guard let url = URL(string: urlString) else { return }

해당 코드에서 return 되고 있었다.

해당 url에 대해서 검색해보니

허용되지 않은 특수문자를 포함하고 있을 경우 url타입으로 변환이 되지 않는다고 했다.

api에서 받는 url이 어떤 특수문자를 포함하고 있을지 몰라 url을 아무렇게나 수정할 수 없던 중 해결책을 알아냈다.

guard let convertedUrl = selectedUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed),
      let url = URL(string: convertedUrl) else { return }

addPercentEncoding 코드를 추가했다.

'지정된 집합에 없는 문자열의 모든 문자를 퍼센트 인코딩된 문자로 대체하여 만든 새 문자열을 반환합니다.'

해당 문자열에 url로 변환할 수 없는 문자를 변환할 수 있는 문자로 변환시켜주는 코드이다.

해당 코드를 넣어주니 해결되었다.

profile
iOS 꿈나무 개발자

0개의 댓글