클로저내의 return 질문
52
1 asked
Movie App_4 강의 11:08초 화면 보시면
dataTask 내에 클로저 부분에서 return을 주면
dataTask의 클로저만 끝나는거 아닌가요?
제가 이해한대로 해석한다면
dataTask 클로저 내에 있는 completion 클로저가 실행 된 뒤 return으로 인해 dataTask클로저가 종료되고, 그 이후 메인스레드에 작성 해 놓은 completion(nil) 또한 실행 되어서 총 두번 실행 되는게 아닌가요??
그리고 dataTask는 비동기 처리로 인해서 completion(nil)이 먼저 실행되고 그 다음에 dataTask내에 있는 클로저가 실행 될 수도 있지 않나요?
어렵네요
Answer 1
-1
안녕하세요, 인프런 AI 인턴입니다.
pipiya2님께서 질문하신 내용은 Swift의 클로저와 비동기 작업에 관련된 이해를 필요로 하는 부분입니다.
dataTask는 네트워크 비동기 호출로, 클로저 내에서 return을 사용하면 그 클로저의 실행이 종료되고, 이어서 dataTask는 여전히 메모리에 남아 작업을 지속합니다. 중요한 점은 completion(nil)과 같이 명시적인 메서드 호출이 클로저 내에서 작성되고 나서야 실제적으로 호출된다는 것입니다.
요약:
dataTask의 클로저 내에서 return을 사용하면 그 클로저의 나머지 코드가 실행되지 않고 종료됩니다.
- 즉, 코드 흐름은 return을 만나면 멈춘다는 의미가 됩니다. 이는 클로저 내의 코드 실행에 영향을 미칠 수 있지만,
dataTask의 호출 자체가 종료되지는 않습니다.
completion(nil)이 클로저 마지막에 있다면, 클로저 내에서 return 전에 명시적으로 작성되었다면 그completion(nil)은 실행됩니다.
해당 개념을 더 잘 이해하는 데 도움이 될 수 있는 유사한 질문과 답변들이 있습니다:
- 클로저 내에서 return 사용과 비동기 작업 - 클로저의 흐름과 return 사용에 관련된 더 구체적인 예시를 제공합니다.
제가 드린 요약과 링크된 자료가 도움이 되기를 바랍니다. 클로저와 비동기 작업의 동작은 초보 개발자에게 혼란스러울 수 있으니, 이를 이해하려는 노력은 더 나은 코드를 작성하는 데 큰 도움이 됩니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
movieapp 3 46분 실행이 안돼요ㅜㅜ
0
184
2
missing constraints 에러
0
219
1
콘솔창 print 내용 안 뜸
0
217
1
키보드 떠 있는 상태 만들기
0
308
1
pageViewController 호출시점
0
372
2
20:01 쯤에서
0
288
1
WebView와 이니시스 결제
0
606
1
movie App 영상이 안나오고 소리만 나옵니다.
0
574
2
to do app 강의중에
0
255
1
UIKit 요소에 대하여...
0
314
1
기업 내부용 앱을 만들어 설치하고 싶다면?
0
597
1
Break Point 사용법
0
403
2
클론 프로젝트 코드 요청드립니다.
0
318
1
extension UIColor
0
247
1
TintColor란 정확히 무엇인가요?
0
640
1
computedProperty 와 func 는 각각 언제 사용하면 좋나요?
0
256
2
force cast 질문입니다.
0
212
1
Optional 관련 질문드립니다.
0
252
1
ToDoApp에서 셀간의 간격 설정에 관한 질문
0
323
1
45도 회전의 경우
0
712
2
파일 여는 방법에 대해서 질문 드립니다
0
231
1
navigation backgrouncolor가 파스텔톤으로 적용되지 않는 건에 대하여
0
315
2
To do App 질문있습니다.
0
212
1
boringssl에 대해서 질문이 있습니다!
1
558
1

