iOS 학습 노트 - defer 키워드

1111 단어
1. 개요defer 키워드는 함수 내의 한 단락의 코드를 수식하여 함수 중의 나머지 코드가 모두 실행되어야 하며 함수가 끝나기 전에 호출되어야 한다.집행을 지연시키는 것으로 이해할 수 있다.
2. 자세히 보기
2.1 코드 쓰기
func testMethod_defer() {
  print("    ");
  defer {
    print("defer_1");
  }
  defer {
    print("defer_2");
  }
  print("    ")
}

2.2 실행 결과
함수 시작 함수 끝defer2 defer_1
2.3 분석 결과
인쇄 결과에 의하면 두 개defer가 모두 실행되었고 함수의 마지막에 실행되었다는 것을 알 수 있다.defer_2 defer보다 먼저1 집행, 한 함수에 여러 개defer가 포함되면 아래에서 위로 올라가는 속성녀에 따라 집행된다는 뜻이다defer.
3. 진급판, 비동기 상황
3.1 코드
func testMethod_deferAsync() {
  print("    ");
  defer {
    print("defer_1");
  }
  DispatchQueue.main.asyncAfter(deadline: .now()+1) {
    print("    ");
  }
  defer {
    print("defer_2");
  }
  print("    ")
}

3.2 실행 결과
함수 시작 함수 끝defer2 defer_1 비동기식 실행
3.3 분석 결과
인쇄 결과에서 보듯이 비동기 코드의 실행은 defer의 실행 시간에 영향을 주지 않는다.사실defer의 집행은 그 소재의 작용역과만 관련이 있으며, 작용역이 곧 회수될 경우 회수 전에 집행defer된다.

좋은 웹페이지 즐겨찾기