본문 바로가기
개린이 이야기

2022년 02월 28일의 이야기

by iOS 개린이 2022. 2. 28.

1. MVC 디자인 패턴 이해 

 

-복잡한 앱을 빌드할 수 있도록 설계 개념을 이해해야 한다. 

-디자인 패턴은 코드를 체계적으로 구성하고 더 나은 방식으로 구성하는 데 도움을 준다.

-MVC는 Model.View.Controller의 약자로 앱을 세 가지 역할로 구분한 개발 방법론이다.

 

-사용자가 Controller를 조작하면 Controller는 Model을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달하게 된다.

2. MVC 구현 및 매개 변수 이름 이해

 

-Question struct 파일을 우클릭하고 new group from selection을 클릭 후 이름은 model로 변경

-> 메인 스토리보드, 뷰 컨트롤러도 각각 view와 controller로 변경. 

-> 모든 일들을 뷰 컨트롤러에서 하고 있기 때문에 분할이 필요하다. 모델 폴더를 우클릭 하고 새로운 스위프트 파일을 QuizBrain 이름으로 만든다. 

-> 퀴즈 브레인 파일 내에 struct QuizBrain( 뷰 컨트롤러에서 질문들을 모두 잘라오기 )을 작성 

-> 변수 questionNumber 잘라오기 

-> 뷰 컨트롤러로 돌아가서 변수 quizBrain = QuizBrain( )을 작성

-> IBAction 내에 quizBrain.checkAnswer(userAnswer) 작성

-> 퀴즈 브레인 파일 내에 함수 checkAnswer 작성

 

3. swift 딥 다이빙 (functions with outputs)

 

-func getmilk(money: int) -> int {         //여기서 화살표와 int는 return arrow와 return type이다.

    let change = money - 2

    return change

}

 

4. MVC 설계 패턴을 구현하기 위한 리팩터링

-> 함수 CheckAnswer를 bool 형식으로 변경해준다. -> bool , return true, return false

-> 뷰 컨트롤러로 돌아가서 상수 userGotItRight으로 캡쳐 후 if 조건문을 usergotitright으로 변경

-> 함수를 통해 퀘스천 라벨을 순서대로 변경할 수 있도록 만들고 싶다. 새로운 함수 getquestiontext를 반환값 string으로 놓고 return quiz[questionnumber].text 작성

-> 위와같은 방법으로 진행률 막대기도 수정한다. 

-> questionNumber를 올려주는 조건문도 퀴즈 기능의 종류이기 때문에 퀴즈 브레인 내에 있어야 한다.

    func nextQuestion() { 

             잘라넣기

     }

 

 5. 스위프트 딥 다이빙 (Immutability)

 

-Immutability는 let과 같이 불변

 mutable은 var와 같이 가변적

 

-메서드 앞에 mutating 으로 마킹을 하면 self가 var 처럼 동작하고, 구조체 내부에서 구조체의 property를 자유롭게 변경할 수 있다.

 

-만약 mutating(돌연변이)로 정의했지만 구조체를 부르는 mytown을 상수로 정의한다면 mutating이 될 수 없다.

 

6. 돌연변이 함수를 이용해서 점수를 추적한다. 

-score 라벨을 새로 만들고, 사용자가 퀴즈를 맞출 때 마다 score가 하나씩 증가하며, 모든 퀴즈가 끝나면 다시 score를 0으로 되돌리는 것이 목표다. 

-IBOulet으로 score 라벨을 연결, 함수 updateui 내에 scoreLabel.text = "score = /( quizbrain.getScore() )" 를 작성

-> 퀴즈 브레인으로 들어가서 변수 score = 0 을 만들고, 함수 checkanswer 조건문에 score += 1 을 추가 후 돌연변이로 변경, nextQuestion 함수의 조건문 else에 score = 0을 작성함으로써 재설정      

 

 

 

'개린이 이야기' 카테고리의 다른 글

2022년 03월 04일의 이야기  (0) 2022.03.04
2022년 03월 03일의 이야기  (0) 2022.03.03
2022년 02월 18일의 이야기  (0) 2022.02.18
2022년 2월 16일의 이야기  (0) 2022.02.16
2022년 02월 11일의 이야기  (0) 2022.02.11