inflearn logo
강의

Course

Instructor

UIKit - iOS14 Practical Guide <Becoming a Real iOS App Developer>

Movie App_4

클로저내의 return 질문

52

pipiya2

1 asked

0

Movie App_4 강의 11:08초 화면 보시면

dataTask 내에 클로저 부분에서 return을 주면

dataTask의 클로저만 끝나는거 아닌가요?

제가 이해한대로 해석한다면

dataTask 클로저 내에 있는 completion 클로저가 실행 된 뒤 return으로 인해 dataTask클로저가 종료되고, 그 이후 메인스레드에 작성 해 놓은 completion(nil) 또한 실행 되어서 총 두번 실행 되는게 아닌가요??

그리고 dataTask는 비동기 처리로 인해서 completion(nil)이 먼저 실행되고 그 다음에 dataTask내에 있는 클로저가 실행 될 수도 있지 않나요?

 

어렵네요

ios swift

Answer 1

-1

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

pipiya2님께서 질문하신 내용은 Swift의 클로저와 비동기 작업에 관련된 이해를 필요로 하는 부분입니다.

dataTask는 네트워크 비동기 호출로, 클로저 내에서 return을 사용하면 그 클로저의 실행이 종료되고, 이어서 dataTask는 여전히 메모리에 남아 작업을 지속합니다. 중요한 점은 completion(nil)과 같이 명시적인 메서드 호출이 클로저 내에서 작성되고 나서야 실제적으로 호출된다는 것입니다.

요약:

  • dataTask의 클로저 내에서 return을 사용하면 그 클로저의 나머지 코드가 실행되지 않고 종료됩니다.
  • 즉, 코드 흐름은 return을 만나면 멈춘다는 의미가 됩니다. 이는 클로저 내의 코드 실행에 영향을 미칠 수 있지만, dataTask의 호출 자체가 종료되지는 않습니다.
  • completion(nil)이 클로저 마지막에 있다면, 클로저 내에서 return 전에 명시적으로 작성되었다면 그 completion(nil)은 실행됩니다.

해당 개념을 더 잘 이해하는 데 도움이 될 수 있는 유사한 질문과 답변들이 있습니다:

  1. 클로저 내에서 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