티스토리 뷰
첫번째 CaseIterable 프로토콜
>> CaseIterable 프로코콜을 conform 하기 전 ( 따르기전 )
모든 메뉴를 담은 리스트를 만들고 싶다면 원소하나씩 넣어줘야한다
enum Menu:String{
case scone = "스콘"
case bagel = "베이글"
case ciabatta = "치아바타"
}
struct MenuListViewModel {
let menus:[Menu] = [.scone,.bagel,.ciabatta]
}
>> CaseIterable 프로코콜을 conform 한다면
allCases로 enum안에 있는 모든 케이스들을 담은 배열을 얻을 수 있다
menus의 타입은 [Menu] 이다 : )
enum Menu:String, CaseIterable{
case scone = "스콘"
case bagel = "베이글"
case ciabatta = "치아바타"
}
struct MenuListViewModel {
let menus = Menu.allCases
}
+ 애플 공식문서에 이렇게 나와있다
두번째 Extension
enum관련해서 추가할 프로퍼티 같은 것들이 있다면 extension하여 추가할 수 있다 : )
extension Menu{
var price:Int{
switch self {
case .scone:
return 3000
case .bagel:
return 5000
case .ciabatta:
return 4000
}
}
}
이런식으로 사용할 수 있다
MenuListViewModel().menus.first?.price
'🍏 > iOS' 카테고리의 다른 글
[AutoLayout] Hugging priority와 Compression Resistance priority 비교 (2) | 2019.04.25 |
---|---|
[Protocol] 프로토콜 뽀개기 (0) | 2019.01.08 |
[CodingKey] CodingKey로 JSON DECODING을 예쁘게 (0) | 2018.12.31 |
[StatusBar] StatusBar 색깔을 White로 바꾸자 (0) | 2018.12.29 |
UICollectionViewCell 간의 간격에 대하여 (0) | 2018.11.03 |
- Total
- Today
- Yesterday
- METAL
- Dart Factory
- Django Heroku Scheduler
- Django FCM
- cocoapod
- Python Type Hint
- Watch App for iOS App vs Watch App
- ipad multitasking
- 장고 Custom Management Command
- flutter 앱 출시
- github actions
- Flutter Clipboard
- Flutter Spacer
- flutter dynamic link
- Flutter getter setter
- 구글 Geocoding API
- PencilKit
- 장고 URL querystring
- drf custom error
- Flutter Text Gradient
- flutter deep link
- Django Firebase Cloud Messaging
- flutter build mode
- 플러터 싱글톤
- SerializerMethodField
- DRF APIException
- Sketch 누끼
- Flutter 로딩
- ribs
- 플러터 얼럿
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |