반응형
let urlStr = "URL주소"
let url = URL(string: urlStr)!
멀쩡히 잘 쓰던 이 코드에서 갑자기 크래시가 나며 앱이 종료되는 문제가 발생했다.
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
url 값이 nil 로 나오는 것을 보아 문자열을 url 형식으로 바꿔주면서 문제가 있었던 것 같은데..
찾아보니 공백이 있을 경우 url 변환이 제대로 안되어 nil을 리턴할 수 있다고..
확인해보니 url 에 넣어준 값 중에 빈 공백이 포함되어 있던 것이 하나 있던 것이었다.
문자열에서 공백을 없애는 방법들을 알아보자.
1. URL 인코딩
공백 없애는 법을 찾아봤더니 제일 먼저 찾은 방법은 url을 인코딩 해주는 법.
let urlStr = "URL주소"
let encoded = urlStr.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let url = URL(string: encoded)!
주소에 한글이나 스페이스가 들어갈 경우 url이 nil 로 반환되는것을 막기 위해 위 방법을 써줄 수 있다고 하는데, 나의 경우에는 이 방법은 멀쩡한 숫자도 같이 인코딩되어 더 이상한 url을 만들 뿐이었다. ㅋㅋㅋ 해결불가..
2. 문자열 공백 치환
그래서 다음 방법으로 .replacingOccurrences를 사용하여 String 속 공백을 치환하는 방법을 사용해 보았더니 잘 되더라.
let urlStr = "URL주소"
let newStr = urlStr.replacingOccurrences(of: " ", with: "")
let url = URL(string: newStr)!
3. 문자열 앞뒤 공백 제거
만약 문자열에 공백이 맨앞이나 맨뒤에 있을 경우에는 .trimmingCharacters 을 사용하여 다음과 같이 문자열 앞뒤 공백을 제거할 수 있다고 한다.
let urlStr = "URL주소"
let newStr = urlStr.trimmingCharacters(in: .whitespacesAndNewlines)
let url = URL(string: urlStr)!
728x90
반응형
'초보 iOS 개발자의 일상 > 이슈모음집' 카테고리의 다른 글
시뮬레이터 빌드 에러 (0) | 2022.05.08 |
---|---|
Xcode 다운로드 - 업데이트 먹통 해결 방법 (Xcode 수동 설치) (0) | 2022.05.06 |
[Swift iOS] UIAlertController not showing (0) | 2021.11.05 |
CryptoSwift Build Errors in Xcode 12.5 'exported: true' has no effect in '_specialize' attribute (0) | 2021.07.02 |
ITMS-90809: Deprecated API Usage - UIWebView issues (0) | 2021.06.15 |