일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- map
- 애니메이션
- 클린 코드
- UICollectionView
- swift documentation
- Refactoring
- tableView
- 리팩토링
- UITextView
- rxswift
- SWIFT
- Clean Code
- uiscrollview
- HIG
- ribs
- clean architecture
- uitableview
- collectionview
- 리펙터링
- Xcode
- 스위프트
- Observable
- swiftUI
- Human interface guide
- 리펙토링
- combine
- ios
- MVVM
- Protocol
- RxCocoa
- Today
- Total
목록OptionSet (3)
김종권의 iOS 앱 개발 알아가기
flag 관리하는 방법유사한 성격의 flag를 관리할때 보통 아래처럼 작성ex) 앱 유저 세팅에 관한 플래그를 관리하는 클래스class UserSettings { var isDarkModeEnabled: Bool var isNotificationsEnabled: Bool var isLocationServicesEnabled: Bool var isAutoUpdateEnabled: Bool var isPrivacyModeEnabled: Bool var isSoundEnabled: Bool var isVibrationEnabled: Bool var isEmailUpdatesEnabled: Bool var isTwoFactorAuthenticationEnabled..
OptionSet 개념OptionSet은 옵션이 있는 Set 자료구조이며, 옵션들을 마치 enum-case처럼 다룰 수 있고 set의 대표적인 연산자 insert, remove, contains, intersection 를 쓸 수 있는 자료구조ex) UserSetting에 관한 플래그를 관리하는 OptionSetstruct UserSettingsFlags: OptionSet { let rawValue: Int static let darkMode = UserSettingsFlags(rawValue: 1 OptionSet에서 rawValue를 bit로 표현하는 이유?일반적으로 OptionSete에서는 rawValue를 보면 모두 shift연산자를 통해 표현stat..
OptionSet 개념 enum-case의 case와 같이 사용할 수 있고 동시에 set 연산자인 insert, remove 등도 사용할 수 있는 API OptionSet 프로토콜 형태 SetAlgebra는 set의 연산자를 정의해놓은 프로토콜 public protocol OptionSet : RawRepresentable, SetAlgebra { associatedtype Element = Self init(rawValue: Self.RawValue) } SetAlgebra 형태 /// - `S() == []` /// - `x.intersection(x) == x` /// - `x.intersection([]) == []` /// - `x.union(x) == x` /// - `x.union([]) =..