다른 사람의 디자인, 앱을 가져올려면
해당 view controller를 가져와[command + c] [command + v]를 해서 복사 붙여넣기 해야한다.
컨트롤러도 따로 지정해야하기 때문에 [new- file]에서 새로운 뷰 컨트롤러를 만들어야한다. ( 그전에 컨트롤러 중복되지않게 작성해야함)
다른 사람의 앱을 내 앱에 넣는 방법.
위에 과정을 거친 다음.
소스를 복사 붙여넣기 해서 클래스 명의 뷰 컨트롤러 앞에 생성한 클래스명을 작성하면 된다.
해당 부분에 내가 생성한 뷰 컨트롤러를 추가하면 해당 뷰 컨트롤러를 실행했을 때 사용이 되는 것을 알 수 있다.
매개변수도 없고, 리턴값도 없는 것을 3번째 매개변수에 completion을 선언했다. 이것을 "디폴트 인자"라고함. (시험에 나옴)
사진들을 보면 iOS 함수중에서 후행 클로저를 많이 사용하는 순위를 매겨서 나온 결과이다.
클로저에 대한 내용을 다루겠다.
x: 10, y: 20을 추가할 경우 오류가 나오는 것을 알 수 있다.
해석하면 아규먼트 레이블 즉 x:, y:가 필요 없다는 것을 알 수 있다.
바꾸게 된다면
let add1 = {(x: Int, y: Int) -> Int in
return(x+y)
}
print(add1(10, 20))
이렇게 하면 오류가 생기지 않고 30으로 출력이 되는것을 알 수 있다.
후행 클로저는 아규멘트를 마지막에 쓸 때 함수 밖에다가 사용할 수 있다.
즉, 아규먼트 레이블을 생략할 수 있다.(후행 클로저, trailing closure라고 부름)
func math(x: Int, y: Int, cal: (Int, Int) -> Int) -> Int {
return cal(x, y)
}
해당 코드를 보면 매스 함수에서는 매개변수가 세 개로 존재하지만 cal 부분은 후행 클로저로 (Int, Int) 두 개의 매개변수와 ->는 리턴해주는 타입을 의미한다.
하지만 이 math함수에서는 math로 리턴해주는게 아니기 때문에 math함수에서 리턴해주는 데이터 타입은 마지막 화살표가 있는 Int가 데이터타입 리턴이다.
func math(x: Int, y: Int, cal: (Int, Int) -> Int) -> Int {
return cal(x, y)
}
print(math(x: 10, y: 20, cal: {
(x: Int, y: Int) -> Int in
return(x+y)
}))
print(math(x: 10, y: 20){
(x: Int, y: Int) -> Int in
return(x+y)
})
이소스들이 후행 클로저를 의미하는 소스이다.
첫번째 코드는 이해하기 편하게 되어있는 소스이고,
두번째 코드는 바로 함수처리하는 소스이고,
세번째 코드는 두번째 코드의 지저분한 내용을 축약한 소스이다.
'iOS 프로그래밍 기초' 카테고리의 다른 글
[iOS 프로그래밍 기초] 13주차 (0) | 2024.11.28 |
---|---|
[iOS프로그래밍 기초] 12주차 (0) | 2024.11.21 |
[iOS 프로그래밍 기초] 11주차 (2) | 2024.11.14 |
[iOS 프로그래밍 기초] 10주차 (0) | 2024.11.07 |
[iOS 프로그래밍 기초] 9주차 (3) | 2024.10.31 |