개요
Model , View , Controller 그룹으로 철저히 나누어 계산기 앱을 만든다.
Constant, Unary Calculate, Binary Calculate 연산이 가능하여야 한다.
사칙연산은 누적이 되어야 한다.
앱을 눕히더라도 꽉찬 계산기 형태로 나와야 한다.
계산은 실수 형태로 나타내진다.
Demo
앱 화면이 1개의 간단한 앱이기에, MVC 한 단위만 사용하여 구현하였다!
설명
클로져를 사용하여 함수를 지저분하게 사용하지않고 인라인 함수처럼 사칙 연산을 구현한건데, 스위프트 엄청 똑똑한 언어로 잘 만든 것 같다 가장 기억에 남는 갓클로져...
Model 그룹에 해당하는 CalculatorBrain.swift (직접 생성) : 계산기의 계산을 수행하는 클래스 부분
View 그룹에 해당하는 Main.storyboard (기본 생성) : UI 화면 부분
Controller 그룹에 해당하는 ViewController.swift (기본 생성) : 모델과 View를 연결 할 수 있도록 해주는 부분
Model에서는 알고리즘 적인 부분을 수행하였는데 , Standford 교수님이 알려주신 그대로 구현하였다.
코딩을 하면 계산기는 구현할 수 있지만, 이렇게 구현할 수 있는 사람은 거~의 없을 듯 하다. 엄청난 교수님의 내공..😱
역시 스탠포드인가..
swift는 변수를 인자로 전달할 수 있으면 함수도 전달 할 수 있다고 한다. enum 과 switch문, 딕셔너리, 클로져의 조합은 환상적이였다 🏷
스위프트는 Optional 타입형이 있는데 set이 안되어있을 수 도 있다는 가정 때문에 생긴 타입형이다.
이부분에서 ? 를 이용하고 !를 이용하는 부분과 !는 대입 할때와 선언할때 의미가 다르다는 점, if 문안에 let 변수 = 옵셔널 변수 {} 를 이용하는 부분은 어렵고 생소하더라 ㅠ
암튼 MVC를 이해하기에는 맞춤형 정석 강의
'🌙 iOS 스터디 > Xcode' 카테고리의 다른 글
[xcode] Inpo.plist 파일 - 애플리케이션 정보 (0) | 2021.01.24 |
---|---|
[xcode] HeaderView있는 CollectionView 애플 뮤직 앱 (0) | 2021.01.20 |
[xcode] CollectionView로 Animation기능을 추가한 원피스 현상금 앱 (0) | 2021.01.20 |
[Xcode] MVVM을 이용하여 TableView로 구성한 원피스 현상금 앱 (0) | 2021.01.15 |
[Xcode] 손전등 앱 (Flash App) (0) | 2020.12.31 |