Swift라는 언어를 급하게 배운것에 대한 폐해라고 생각합니다 ㅎ.
부끄럽기도 한 부분이지만 같은 햇갈림을 가지고 있을 사람들에게 조금이나마 도움이 되고자 작성을 합니다.
처음으로 이 문제에 대해서 생각한것은 Main class에서
UITableViewDataSource, UITableViewDelegate
를 extends 했을때 관심을 가지기 시작했다.
이중 UITableViewDataSource를 extends 할 시 아래와 같은 필수 구현 함수들이 나옵니다.
func tableView(_ tableView : UITableView, cellForRowAt indexPath : IndexPath) {
// tableView 에 표시할 셀을 요청하는 메서드
}
func tableView(_ tableView : UITableView, numberOfRowsInSection section : Int){
// 각 섹션에 출력될 행의 개수
}
일반적으로 생각했을때 필수적인 콜백 함수라고 생각을 했고 가운데 있는 cellForRowAt, numberOfRowsInSection 이 이름이라고 생각했습니다.
갑자기 생기는 궁금증에 그러면 이렇게 항상 불편하게 함수를 구분해야하나 좀 알아봤습니다.
검색해보자마자 정말 바보같았다는 생각이 들었습니다.
Swift에서는 기본적으로 func의 parameter 에 이름을 부여할 수 있습니다.
바로 Argument Label 이를 [인수명] 이라고 하죠
이러한 인수명을 쓰지 않을때는 언더바( _ ) 를 넣어서 인수명을 생략할 수 있습니다.
저것은 단순히 인수명이었던것 입니다...
그러면 여기서 인수명을 다르게 한 같은 Type의 parameter를 넣으면 어떻게 될까 궁금해서 Playground에서 작성해 보았습니다.
func test(_ temp : Int, tempParam temp2 : Int) -> Int {
return temp + temp2
}
func test(_ temp : Int, tempParam2 temp2 : Int) -> Int {
return temp * temp2
}
print(test(1, tempParam: 2))
print(test(1, tempParam2: 2))
당연히 잘나옵니다... 다르게 잘 작용합니다...
결론 : 기초가 중요하다.
'프로그래밍 > IOS (Swift)' 카테고리의 다른 글
[Swift] 기종별 해상도 맞추는 View resize ( Constraint 주지 않고 ) (0) | 2021.04.29 |
---|---|
[Swift] UITableView 스크롤시 값이 중복되는 현상 (0) | 2021.04.19 |
[Swift] TextField, PickerView 가 있는 Alert 창 만들기 (0) | 2021.04.13 |
[Swift] NavigationController 사용시 코드로 Navigation Item 수정하기 & Swift 기본 이미지 사용하기(System Image) (0) | 2021.04.01 |
[Swift] Cocoapods 이용하여 MAlert 라이브러리 사용하기 (0) | 2021.03.29 |