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

2022년 2월 16일의 이야기

by iOS 개린이 2022. 2. 16.

1. 퀴즈 프로젝트 설정 및 질문 표시 

-Question text label을 IBOulet questionLabel을 연결, IBOulet progressBar 연결,  IBOulet trueButton 연결, IBOulet falseButton 연결, IBAction answerButtonPressed 연결 후 False button에도 연결 

-> questionLabel.text = "four + two is equal to six" 를 viewDidLoad함수 괄호 내에 작성

-> 많은 질문을 위해 상수 퀴즈 내에 배열을 만들어놓는다. 

    ex) let quiz = [ "four + two is equal to six",

                              "five - three is greater than one", "three = eight is less than ten" ] 

2. swift deep dive(structures)

-구조체란 인스턴스의 값(프로퍼티)을 저장하거나 기능(메소드)을 제공하고 이를 캡슐화할 수 있는 스위프트가 제공하는 타입(named type)입니다. 

 

-구조체 안의 변수는 속성(property)(what it's like), 구조체 안의 함수는 메소드(method)(what it can do) 라고 한다. 

 

-초기화(init()):

  • 클래스, 구조체, 열거형 인스턴스를 사용하기 위한 준비 작업
  • 저장 프로퍼티의 초기 값을 설정
  • 초기화 작업이 완료되면 메모리에 인스턴스가 생성 된다.

-이니셜라이저의 역할

  • 스위프트는 에러에 대한 안전을 최우선시 한다.
  • 빈 메모리에 접근하게 된다면 예기치 못한 에러가 발생할 수 있다.
  • 타입 내부에 프로퍼티가 있다면 해당 프로퍼티에는 무조건 값이 있다는 것을 보장해야 한다.
-이니셜라이저 사용방법
init( ) {  //여기에서 초기화를 구현  }
 
-struct Town{

    let name : String   var citizens : [String]    var resource : [String : Int]

    init(name : String, citizens : [String], resources : [String:Int])

    {

        self.name = name                     //self는 위의 구조물 Town의 프로퍼티를 뜻함

        self.citizens = citizens

        self.resource = resources

    }

    func fortify() {

        print("Defences increased")

        

    }

    

}

var anotherTown = Town(

    name: "Nameless Isiand",

    citizens: ["Tom Hanks"],

    resources: ["Coconut" : 100])

var ghostTown = Town(

    name: "Ghosty McGhostface",

    citizens: [],

    resources: ["Tumblweed" : 1])

 

anotherTown.citizens.append("Wilson")

ghostTown.fortify()

 

3. 질문 트러ct 만들기

-ios swift file로 new file을 만든다. 이름은 Question

 

-> struct Question {

            let text: string

            let answer: string

}작성

-> main으로 돌아가서 2차 배열을 지우고, Question struct을 사용한다. 

     ex) let quiz = [Question( text : "four + two is equal to six.", answer : "ture.") ]

-> 2차 배열을 사용했던 곳들을 Quiz[questionNumber].answer 로 바꾼다.
-> let actualQuestion = quiz[questionNumber] 를 추가하고, let actualAnswer = Quiz[questionNumber].answer 로 변경도 가능하다.
-> Question file로 돌아가서 init(q: string, a: string){ text = q answer = a} 를 작성 
-> main으로 돌아가서 모든 질문을 삭제하고 read me file에서 모든 퀴즈를 복사한 후 붙여 넣는다. 
     

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

2022년 02월 28일의 이야기  (0) 2022.02.28
2022년 02월 18일의 이야기  (0) 2022.02.18
2022년 02월 11일의 이야기  (0) 2022.02.11
2022년 02월 10일의 이야기  (0) 2022.02.10
2022년 02월 09일의 이야기  (0) 2022.02.09