Daily iOS
Swift 언어

escaping 클로저

아래 코드는 컴파일되지 않습니다. 컴파일러가 무엇을 요구하나요?

final class Loader {
    var handlers: [() -> Void] = []
    func register(_ handler: () -> Void) {
        handlers.append(handler)
    }
}
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

클로저를 프로퍼티에 저장하면 함수 반환 후에도 살아남으므로 컴파일러는 파라미터에 @escaping 표기를 요구한다.

받은 질문 공유