남의 코드를 보다 보니,
convenience init 이라는 키워드가 나와서, 알아보기로 했다.
public init(grid: Grid = Grid(), sections: [Section] = []) {
self.grid = grid
self.sections = sections
super.init()
}
public convenience init(grid: Grid = Grid(), _ sections: [[ViewModelProtocol]]) {
let sections = sections.map { items in
return Section(grid: grid, header: nil, footer: nil, items: items)
}
self.init(grid: grid, sections: sections) ## convenience init 함수에는 이렇게, 다른 init함수를 호출해줘야 한다.
}
따로, 예제가 없어서, 현재 내가 보고 있는 코드를 예제로 쓴다.
저자가 마음대로 막 가져다 쓰라고 했으니...
convenience init은 init함수와 똑같은데, 파라미터 중 일부를 기본값으로 가져올 수 있다.
그리고, 약간 보조적인 성경의 init이다 보니, 꼭 다른 init을 호출해줘야 한다는 규칙이 있다.
'컴퓨터 > iOS, Swift' 카테고리의 다른 글
[CI/CD] Bitrise Error with XCode (0) | 2022.06.12 |
---|---|
[iOS] UIImageView 테두리 원형으로 만들기 (0) | 2021.04.05 |
[iOS] func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat 알아보기 (0) | 2021.02.26 |
[Swift] 접근 제어 / Access Levels (0) | 2020.08.18 |
Functional Swift : Closure의 관한 모든 것. (0) | 2018.09.20 |