iOS 학습 노트 - defer 키워드
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
된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.