티스토리 뷰
첫번째 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
- Sketch 누끼
- SerializerMethodField
- Django FCM
- github actions
- ipad multitasking
- Flutter Spacer
- flutter dynamic link
- 장고 Custom Management Command
- 플러터 싱글톤
- flutter 앱 출시
- 플러터 얼럿
- flutter build mode
- Django Firebase Cloud Messaging
- METAL
- Flutter Text Gradient
- PencilKit
- cocoapod
- DRF APIException
- 구글 Geocoding API
- 장고 URL querystring
- Python Type Hint
- Flutter getter setter
- drf custom error
- flutter deep link
- Watch App for iOS App vs Watch App
- Flutter Clipboard
- Flutter 로딩
- Django Heroku Scheduler
- ribs
- Dart Factory
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |