728x90
반응형
문제
API 호출을 하려고 하는데 문제 없는 URL String을 URL 객체로 변환하니까 자꾸 nil이 반환되는 문제가 있었다. 저번에는 됐는데 왜 된거지
암튼 검색해보니 주소에 한글이나 스페이스 등이 들어갈 때 nil이 될 수 있다고 한다.
역 이름 인자로 한글이 들어가기 때문에 이런 문제가 생겼던 것 같다.
해결
➡️ 인코딩을 해주면 해결할 수 있다.
- .addingPercentEncoding을 사용하면 인자로 지정된 CharacterSet에 명시되어 있지 않은 모든 Characters를 백분율로 인코딩된 문자로 바꿔준 뒤, String? 값으로 반환해준다.
let encodedURL = arrivalUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
인자로 지정해준 urlQueryAllowed 라는 놈은 URL에 사용하는 것이 허용된 문자들을 말하는 것 같다. 그래서 그 외의 문자인 한글을 URL에서 대응 가능하도록 인코딩해주는 것 같다.
( 설명 참고 : https://developer.apple.com/documentation/foundation/characterset#2902136 )
변경 결과
레퍼런스
https://zeddios.tistory.com/281
https://hongssup.tistory.com/187
728x90
반응형
'iOS' 카테고리의 다른 글
[iOS] M1 맥북 + Xcode 15 환경에서 SwiftLint 적용 시 오류 처리 (0) | 2024.02.28 |
---|---|
[ iOS ] CustomStringConvertible 프로토콜 (0) | 2024.02.13 |
[ iOS ] 팀 작업 시에 Bundle Identifier 하나로 공유하기 (0) | 2023.08.27 |
[ iOS ] Watch Connectivity 사용해보기 (0) | 2023.08.08 |
[ iOS ] Core Motion 사용해보기 (0) | 2023.08.08 |