2024/09 20

TIL 13일차

네비게이션 컨트롤러를 연습하는데 아무래도 긴 예제를 한번에 따라가려니 무슨 코드인지도 헷갈리고 에러도 많아 해결이 안돼서 처음부터 차근차근 다시 하기로 했다. 첫번째 화면에 텍스트필드와 버튼을 넣고, 두번째 화면에서 라벨을 넣어 데이터를 두번째 화면에 넘어가는지부터 확인할 것이다.import UIKitclass ViewController: UIViewController { @IBOutlet weak var dataTextField: UITextField! override func viewDidLoad() { super.viewDidLoad() } @IBAction func goToSecondScreen(_ sender: UIButton) { ..

TIL 12일차

오늘은 네비게이션 컨트롤러에 대해 공부했다. 첫 퀘스트였던 성적관리시스템을 완성시키고 싶었기 때문이다. 내가 원했던 건 처음 화면에서 학생의 이름과 아이디를 제출받고, 다음 화면에서 과목명과 점수를 입력 받으면 밑에 실시간으로 추가된 데이터들이 늘어나 나타나고 평균도 바로 보일 수 있었으면 했다.어찌됐든 네비게이션을 다루는 연습을 해야겠다 싶어서 구글링으로 예제를 찾아 따라해보기로 했다. 지금 어떻게 하는지 모르는 부분이 다른 화면에서 값을 어떻게 서로 넘겨 받는지, 그리고 어떻게하면 화면이 실시간으로 변하면서 사용자가 추가, 수정, 삭제가 됐는지 확인할 수 있는지이다.인터넷에서 찾은 예제를 따라한 모습이다. 큰 흐름은 메인 화면에서 수정 버튼을 누르면 두번째 화면인 수정 화면으로 넘어가고, 수정 화면에..

TIL 11일차

오늘은 머리를 아프게 했던 성적관리 시스템은 일단 남겨두고 빠르게 할 수 있을듯한 그 다음 과제들을 먼저 하기로 했다.성적관리 시스템의 다음 문제는 다음과 같은 문제였는데 매우 간단해 보였고, 오늘 문제는 굳이 스토리보드를 이용할 필요 없이 플레이그라운드로 할 수 있어 보였다.처음부터 플레이그라운드를 쓰지 않았던 건 플레이그라운드가 뭔지 몰라서 그런 것도 있고, 입력을 받아야 한다는 문장 때문에 그렇기도 했고 앱 개발이 하고 싶어서 참여한 캠프이니 어려워도 앱 개발 비스무리한 걸 하고 싶었기 때문이었다..하지만 배운 거 없이 낯선 언어의 문법 학습과 앱 UI 구성까지 온전히 다 독학으로 하려니 너무 어렵고 이해 안되는 것 투성이라 흥미가 떨어지려 하니 쉬운 것부터 하나씩 하는 게 나을 것 같다.var w..

iOS 사전캠프 퀘스트 Step3 - 운동 관리 시스템을 구축해요

//운동 관리 시스템//필요한 변수 : 시간, 몸무게 2개, 체온, 체력, 횟수var time: Int = 0var weight1: Double = 0.0var weight2: Double = 0.0var temperature: Double = 0.0var health: Int = 0var count: Int = 0//운동 시간 함수time = 45func workout(min: Int) { if min >= 60 { print("\(min)분이나 운동했어요. 운동을 많이 했습니다!") } else { min >= 30 ? print("\(min)분이면 적당히 운동했어요.") : print("\(min)분이면 운동이 부족해요") }}workout(min: time..

TIL 9일차 - 성적 관리 시스템2

어제에 이어 성적 관리 시스템을 마저 프로그래밍 했다.어제 구조체를 쓰긴 했는데 여러 함수들을 구조체 밖에다 만든 것이 마음에 안들었다. 구조체는 특정 기능과 관련된 변수나 함수들을 한데 모아 관리할 수 있어 명확하고 변경이나 추가, 삭제가 편리한 것으로 이해하고 있기 때문이다.다음과 같이 학생들의 이름을 저장할 배열 studentList와 이름과 아이디를 저장할 딕셔너리 studentDictionary, 학생의 이름과 아이디를 입력 받아 배열과 딕셔너리에 추가할 함수 addStudent, 추가된 것을 확인할 출력 함수 printStudents를 구조체 안에 추가하였다.구조체 안에 추가하였으므로 studentList를 선언할 때 썼던 타입을 Student에서 String으로 바꾸었고, addStudent..

TIL 8일차 - 성적 관리 시스템 제작하기

오늘은 사전캠프의 과제 중 하나인 성적 관리 시스템 과제를 실습하였다. 몇 가지 절차를 따라 과제를 진행해야 했는데 그중 첫번째인 학생 이름과 id를 입력받아 딕셔너리로 저장하는 과제를 풀었다.구조체를 배웠기에 이번엔 Struct를 활용해 간결하고 확장성 있는 코드를 짜보고자 했다.Student 구조체 안에 학생의 이름과 id를 받을 변수를 선언하고, 동명이인으로 인해 딕셔너리 값이 덮어씌워 질 수 있기에 이름을 따로 저장할 배열 StudentList를 선언하고 이름을 key로 id를 value로 갖는 딕셔너리 studentDictionary를 선언하였다.그 뒤에 학생을 입력받아 추가할 addStudent 함수를 만들어 입력 받은 이름과 id를 배열과 딕셔너리에 추가하고자 했는데 에러가 났다.어떤 에러인..

TIL 7일차 - 간단한 데이터 타입 연습

오늘은 몇가지 과제를 해결하는 시간을 가졌다. 첫 번 째는 단순히 여러 종류의 변수를 선언하는 단순한 문제이기에 지금까지 배운 걸 토대로 출력해보고자 했는데 에러가 났다. 다른 변수 선언은 괜찮은데 Character 변수와 Any 변수를 선언하라고만 써있어서 초기값 없이 정말 선언만 했더니 우리의 swift는 바로 에러가 났다. 읽어보니 초기화를 하라기에 잘 모르겠어서 일단 초기값을 지정하고 넘어갔다. swift에선 초기화를 꼭 하지 않으면 에러가 나는듯 하다.이어서 2번 문제는 age 변수와 interesRate 변수를 더해서 출력하라는 문제였다. 이 역시 매우 단순한 문제여서 익숙한 방식대로 더한 값을 저장할 변수 plusFirst를 선언한 다음 age변수와 interesRate 변수끼리 더하여 대입..