인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

SwiftLearner님의 프로필 이미지
SwiftLearner

작성한 질문수

iOS9 & Swift2 12개 앱을 만들면서 배우는 아이폰 앱 개발

126. 이미지 다운로드 앱- 비동기 통신(Delegate) 5

126강에서 다룬 메인스레드와 백그라운드 스레드에 대해서 좀 더 자세히 설명해주실 수 있나요?

작성

·

271

0

이제 거의 종강을 눈앞에 두고 달리고 있습니다. 그런데 126강에서 갑자기 스레드랑 관련된 설명들이 나오던데 메인스레드와 백그라운드 스레드에 대해서 조금만 더 자세히 설명해주실 수 있나요? 왜 self.imgView.image= UIImage(data:data)가 백그라운드 스레드이고, NSOperationQueue.mainQueue()를 이용해서 메인스레드에 접근을 해서 이미지를 바꿔야하는 것인가요? 둘이 뭐가 어떻게 다른 것인지 설명을 좀 부탁드리겠습니다.

답변 1

0

뭐하는거니?님의 프로필 이미지
뭐하는거니?
지식공유자

mainQueue()라고 하는건 메인큐를 쓰겠다는 얘기예요.
비동기 클래스인 NSURLSession 이 자동으로 백그라운드 쓰레드 만들어서 알아서 해줄겁니다. 단지 통신이 백그라운드 스레드가 돌아 가는 거구요, 정작 우리는 메인 쓰레드에 백그라운드 쓰레드가 동작하면서 다운 받은것을 반영 해야되잖아요 그 반영이라는건 image 받은걸 화면에서 적용하는 거겠죠. 우리가 보는 화면이 메인 화면이구요 이게 main thread입니다.
그래서 mainQueue(main thread queue) 를 불러서 거기에 반영하라고 하는 부분 입니다.

이제 다 보셨네요. 무사히 정주행 하신거 축하 드려요.

SwiftLearner님의 프로필 이미지
SwiftLearner

작성한 질문수

질문하기