티스토리 뷰
일단은 인터넷과 연결이 되어야 하는 부분이기 때문에 통신으로 분류했습니다.
Xcode 14 이상 부터 나타난 경고인데
여러가지 상황에서 웹뷰(WebView)나 특정 Url 에서 정보를 가져와야 할때
보라색으로 Xcode 에서 경고를 보여주더라고요
사실 기능 자체에 문제가 되는 부분은 아니지만
떠 있으면 신경쓰이다보니 해결 방법에 대해 알아봅시다.
* 뜨는 이유
- 안내 문구를 보면 해당 주소로부터 데이터를 가져오는 과정을 메인 스레드에서 진행이 되게 되어있는데
이럴 경우 해당 사이트에서 데이터를 가져오는 동안에는 메인스레드를 쓸 수 없기 때문에 사용자 입장에서는
마치 멈춘 것 처럼(Unresponsiveness) 보이게 되니 URLSession 으로 다르게 처리하라는 겁니다.
* 해결 방법
- 경고문에 적힌대로 URLSession 을 사용해 아래처럼 작성하면 쉽게 해결할 수 있습니다.
func getDataFromStringURL(stringUrl: String) {
if let url = URL(string: stringUrl) {
URLSession.shared.dataTask(with: url) { (data, response, error) in
//
guard let urlData = data else { return }
// 해당 데이터를 원하는 형식으로 바꾸어 사용하시면 됩니다.
// ex) 이미지의 경우
let webImage = UIImage(data: urlData)
// ex) html 을 가져와야할경우
let webString = String(data: urlData, encoding: .utf8)
DispatchQueue.main.async {
// 화면 UI 에 관련된 처리를 해야하는 경우
}
}.resume()
}
}
오류가 아니라서 필수 처리 사항은 아니지만
저처럼 신경쓰이시는 분들을 위해 올려봅니다.
오늘도 파이팅입니다.
'iOS개발 > Swift 통신' 카테고리의 다른 글
Swift 블루투스 통신 1편 (CBCentralManagerDelegate) (0) | 2023.06.12 |
---|---|
Swift Local Push Notification 이해하기 (0) | 2023.05.24 |
Swift Alamofire UIImage 전송하기 (0) | 2022.12.29 |
Swift Alamofire 세부 설정편 (0) | 2022.12.29 |
Swift Alamofire 간단 서버에서 값 가져오기 기본편 (0) | 2022.12.27 |
댓글