내일배움캠프 앱개발 iOS 트랙 본캠프 3주차
Today I Learned
키오스크 기능 구현
키오스크 기능 구현하기 | |
Lv1 | readLine으로 값 입력받기 |
입력받은 숫자에 따라 다른 로직 실행하는 코드 (조건문 사용) | |
특정 번호가 입력되면 프로그램 실행 종료 | |
Lv 2 | 버거, 아이스크림, 음료, 맥주, 주문, 공통 등 클래스 설계 |
클래스의 프로퍼티와 메소드 정의 | |
Lv 3 | 2의 클래스를 상속 관계로 만들어보기 |
하나의 객체 리스트로 모든 메뉴를 관리할 수 있도록 수정하기 |
readLIne() 으로 값 입력받기
if let choice = readLine() { ,,, }
입력받은 숫자에 따라 다른 로직을 실행하는 코드
if let choice = readLine() {
switch choice {
case 1:
print("뭔가 할 수 있다.")
case 2:
break
default:
print("잘못된 번호를 누르셨습니다. 다시 눌러주세요.")
}
}
특정 번호가 입력되면 프로그램 실행 종료
case 0:
exit(0)
클래스 설계
class Menu {
}
class Burgers: Menu {
}
class FrozenCustard: Menu {
}
class Drinks: Menu {
}
class Beer: Menu {
}
클래스 내부 프로퍼티, 메소드 정의
class Menu {
func printDetailMenu(options: Product) {
// 디테일 메뉴 출력
}
func processOrder(options: Product, itemPrefix: String) {
}
}
class Burgers: Menu {
let menuOptions
func processOrder() {
}
}
class FrozenCustard: Menu {
let menuOptions
func processOrder() {
}
}
class Drinks: Menu {
let menuOptions
func processOrder() {
}
}
class Beer: Menu {
let menuOptions
func processOrder() {
}
}
데이터 모델링
데이터를 추상화하고 구조화하는 과정
swift 에서는 세가지 방법으로 데이터 모델링을 할 수 있다.
- 구조체
- 변수와 메서드를 함께 사용가능
- 속성을 통해 데이터를 저장 / 기능 수행 가능
- 클래스
- 구조체와 비슷하지만 상속이 가능하고 참조 타입이며 타입캐스팅, 소멸자 같은 고급 기능 사용 가능
- 열거형
- 유한한 몇 가지 값을 가지는 타입을 정의할 때 사용
메뉴는 딱히 값이 바뀌지 않으므로 키오스크 메뉴 데이터를 열거형으로 저장했는데
이게 영... 자꾸 xcode가 꺼진다.
왤까?
'TIL' 카테고리의 다른 글
[TIL] 23.12.19 (0) | 2023.12.19 |
---|---|
[TIL] 2023.12.06 | 키오스크(3/n) "뒤로 가기"를 만들고 싶었는데... / 스택 오버플로우, 메모리 스택, self (0) | 2023.12.07 |
[TIL] 2023.12.04 | 키오스크(1/n) 열거형과 구조체의 사용법 차이, CaseIterable (0) | 2023.12.04 |
[TIL] 2023.12.01 | 계산기(4/4) 클래스 추상화, 의존성주입, 의존성역전원칙 (0) | 2023.12.02 |
[TIL] 2023.11.30 | 계산기(3/n) 클래스 단일책임원칙, OCP (0) | 2023.11.30 |