본문 바로가기
Swfit

Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" 에러 해결 방법

by GGShin 2022. 12. 2.

회사 서비스를 만드는데, 간혹가다 아래와 같은 (무시무시한) 에러가 발생하곤 했습니다. 🥹

아직 XCode 에러 보는 게 익숙치 않은 것인지 모르겠지만 IntelliJ 보다 에러에 대한 설명이 좀 이해하기 어려운 느낌입니다. 

 

2022-12-02 19:00:04.318481+0900 [30255:13156019] Task <0E3B0CE2-317E-4182-A800-AEF2C864383A>.<11> finished with error [-1002] Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo={NSLocalizedDescription=unsupported URL, NSErrorFailingURLStringKey=nil, NSErrorFailingURLKey=nil, _NSURLErrorRelatedURLSessionTaskErrorKey=(

    "LocalDataTask <0E3B0CE2-317E-4182-A800-AEF2C864383A>.<11>"

), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <0E3B0CE2-317E-4182-A800-AEF2C864383A>.<11>, NSUnderlyingError=0x6000008f99b0 {Error Domain=kCFErrorDomainCFNetwork Code=-1002 "(null)"}}

"unsupported URL" 이라는 것을 보니 URL의 문제라는 것은 알겠는데, 분명히 제대로된 URL를 사용하는데 이상하다는 생각이 들었습니다. 

 

결국 알게된 문제의 원인은 올바르지 못한 optional 처리에 있었습니다. 그리고 URL에 문제가 있었다는 말은 맞지만, 제가 parsing하는 URL이 아닌 JSON에서 가져오고자 하는 String을 URL로 변환할 때 문제가 있었던 것이었습니다. 

문제를 일으킨 코드를 보면,

let userProfileImageURL = URL(string: payload.assetEvent.to_account?.profile_img_url ?? "nil")

얻고자 하는 데이터인 payload.assetEvent.to_account?.profile_img_url은 옵셔널 처리를 해주어야 해서 값이 비어있는 경우 "nil"로 대체하게끔 설정해두었습니다. 그랬더니, 해당 값이 비어있는 경우 URL을 만들 때 "nil"이 들어가다보니 제대로 URL이 생성될 수가 없었던 것입니다. 

 

다음부터는 optional 처리에 조금 더 신경을 써야겠다는 생각을 하게되었습니다. •ɞ•

감사합니다.

 

반응형

'Swfit' 카테고리의 다른 글

ReactorKit 기본 개념  (0) 2022.12.11
lottie-ios dataCorrupted error  (0) 2022.12.08
날짜 사이 일수 구하기  (0) 2022.12.02
Substring 표현방법  (0) 2022.12.02
NavigationBar 색상 및 타이틀 색상 변경하기  (0) 2022.11.12