Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 애니메이션
- map
- Refactoring
- RxCocoa
- collectionview
- 클린 코드
- swift documentation
- uiscrollview
- 리팩토링
- tableView
- HIG
- Xcode
- 리펙터링
- ios
- 스위프트
- Clean Code
- Human interface guide
- UITextView
- 리펙토링
- SWIFT
- clean architecture
- swiftUI
- UICollectionView
- combine
- Observable
- ribs
- Protocol
- uitableview
- MVVM
- rxswift
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] escaping closure, @escaping 본문
일급객체
- 함수는 일급 객체
- 일급 객체란 변수에 저장하거나 파라미터로 넘길 수 있는 속성
escaping이란
- 함수가 해당 함수 내부에서만 사용되지 않고 다른 곳으로 저장하거나 참조하거나 파라미터로 넘길 수 있는 의미(==현재 함수를 탈출)
- 함수에서의 escaping이란 함수 내부에서 사용해야할 것이 외부에서 참조되거나 파라미터로 넘겨지는 현상
- 함수라는 것은 파라미터(인수)또한 포함되는 개념
예제) 아래 두 가지 케이스 모두 @escaping을 쓰지 않으면 컴파일 오류 발생
- 함수의 escaping: 외부에서 저장하는 경우
: completion이라는 인수가 escaping되어, sampleFunc라는 함수는 escaping됨
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
var completionArr: [() -> Void] = []
func sampleFunc(completion: @escaping () -> Void) {
completionArr.append(completion) // escaping
}
}
- 함수의 escaping: 외부에서 참조하는 경우
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
var completionRefer: () -> Void = { // 외부
print("")
}
func sampleFunc(completion: @escaping () -> Void) {
completionRefer = completion // escaping
}
}
'iOS 기본 (swift)' 카테고리의 다른 글
Comments