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
- Protocol
- Human interface guide
- clean architecture
- collectionview
- rxswift
- Xcode
- UICollectionView
- tableView
- 애니메이션
- ribs
- HIG
- map
- 스위프트
- uiscrollview
- swift documentation
- MVVM
- ios
- Observable
- swiftUI
- uitableview
- combine
- Clean Code
- 리팩토링
- Refactoring
- 리펙토링
- RxCocoa
- UITextView
- 클린 코드
- 리펙터링
- SWIFT
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 네임스페이스 정의 방법 (enum, extension) 본문
네임스페이스 정의 방법
- nested-type으로 여러 타입을 지정하고 싶은 경우, 보통 아래처럼 class타입 안에 class로 지정하는 경우가 있지만 이렇게 되면 DesignSystem1이라는 클래스 안에 여러가지의 nested-class가 많아지는 구조로 번식
- 또 DesignSystem1은 class타입이므로 불필요한 생성자가 존재
public class DesignSystem1 {
public class RadioButton {
}
}
- 단순히 namespace만 관리할 목적이고 생성자가 필요 없으므로 enum을 활용
// DesignSystem.swift
public enum DesignSystem {
public class RadioButton {
}
}
- 또한 namespace를 정의할 때는 위처럼 구현하다보면 하나의 DesignSystem이르는 enum 타입 안에 여러가지의 class가 만들어지면 코드를 읽기가 불편하므로 파일 자체를 분리하고 extension으로 표현하도록 하는것이 코드 관리에 많은 이점이 존재
// DesignSystem+RadioButton.swift
public extension DesignSystem {
class RadioButton {
}
}
정리
- 단순히 네임스페이스만 표현할때는 불필요한 생성자 없이 타입만 표시할 수 있는 enum을 활용
- 하위 타입들을 정의할때는 파일을 분리하여 extension을 활용
'iOS 응용 (swift)' 카테고리의 다른 글
Comments