다시 사람의 앱을 가져오는 방법
viewcontroller
소스 복붙 후 소스 수정하기
클로저(Closure)
클로저를 지원하는 프로그래밍 언어
- JavaScript
- Python
- Ruby
- Java (Java 8 이상)
- C#
- Swift
- Kotlin
- Scala
- PHP (PHP 5.3 이상)
- Lua
- Haskell
- Erlang
- Go
- Rust
- Dart
디폴트 인자(매개변수)
매개변수도 없고 리턴값도 없는 함수를 3번째 인자에 넣어야 함
후행 클로저를 사용하는 함수를 많이 사용하는 순서로 설명
1. map: 배열의 각 요소를 변환하는 데 사용
let numbers = [1, 2, 3, 4, 5]
let squared = numbers.map { $0 * $0 }
2. filter: 배열에서 조건에 맞는 요소만 추출
let evenNumbers = numbers.filter { $0 % 2 == 0 }
3. sorted: 배열을 정렬할 때 사용합니다
let names = ["Alice", "Bob", "Charlie"]
let sortedNames = names.sorted { $0 > $1 }
4. forEach: 배열의 각 요소에 대해 작업을 수행
names.forEach { print($0) }
5. UIView.animate: UI 애니메이션을 구현할 때 사용
UIView.animate(withDuration: 0.3) {
view.alpha = 0
}
클로저로 바꾸기
func add(x: Int, y: Int) -> Int {
return x+y
}
print(add(x: 10, y: 20))
//1단계 func와 함수 이름 지우기
(x: Int, y: Int) -> Int {
return x+y
}
//2단계
let add1 = { (x: Int, y: Int) -> Int in
return x+y
}
print(add1(2, 3)) //주의 error: extraneous(관련 없는) argument labels 'x:y:' in call
후행 클로저(trailing closure)
-> argument 생략 가능
제일 뒤에 있는 화살표 리턴형
후행 클로저 스타일
func math(x: Int, y: Int, cal: (Int, Int) -> Int) -> Int {
return cal(x, y) //add1(10, 20)
}
print(math(x: 10, y: 20, cal: add1))
math(x: 10, y: 20, cal: { (x: Int, y: Int) -> Int in
return x+y
})
math(x: 10, y: 20) {
(x: Int, y: Int) -> Int in return x+y
}
'IOS 기초' 카테고리의 다른 글
[IOS 기초] 13주차 BMI판정 앱(4) (1) | 2024.11.28 |
---|---|
[IOS 기초] 12주차 BMI판정 앱(3) (1) | 2024.11.21 |
[IOS 기초] 11주 BMI판정 앱(2) (0) | 2024.11.20 |
[IOS 기초] 10주 BMI 판정,동영상 재생,웹뷰 앱 (2) | 2024.11.07 |
[IOS 기초] 9주 (2) | 2024.10.31 |
[IOS 기초] 7주 Xcode로 간단한 앱 개발 (0) | 2024.10.17 |
[IOS 기초] 6주 Swift 문법 5(클래스 failable initializer 상속)파일 (4) | 2024.10.10 |
[IOS 기초] 5주 Swift 문법 4(일급시민 클로저 기초)파일 (0) | 2024.10.09 |