2024.03.19 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (1) 2024.03.21 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (2) 2024.03.25 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (3) ToDoList 앱 만들기 (4) 오늘은 지금까지 해결하지 못하던 문제들을 한번에 해결하는 날이었다. 분명히 구현이 되어야 하는 기능인데 왜 되지 않을까 고민에 빠졌었지만 한가지 실마리가 해결되니 줄줄이 해결 되는 날이었달까.. 오늘은 내가 해결한 내용을 위주로 글을 써볼까 한다. 내가 가지고 있던 문제 새로운 할 일을 추가하면 새로 등록되는 newTodo 의 레이블 값 즉 할일을 적는 부분이 완료 버..
Delegate Pattern 왜 사용하는 걸까? 과제나 강의를 들어도 꼭 나오는 델리게이트 패턴은 정말 많이 쓰이는 것 같지만 정작 왜 사용하는지 모르고 사용하는 것 같은 느낌이 들어 개념을 한번 잡아보려고 한다. Delegate Pattern 이란 객체가 자신의 책임을 다른 객체에게 위임하는 디자인 패턴 테이블뷰는 셀을 탭했을 때 어떤 행동을 할지에 대한 책임을 뷰컨트롤러에게 UITableViewDelegate 를 사용하여 위임한다. 테이블 뷰 외에도 콜렉션뷰 , 텍스트필드 등 많은 UI 요소들이 델리게이트 패턴을 사용해 다른 객체에게 책임을 위임하고 있다. 왜 위임을 하는 걸까? UI요소에서의 Delegate Pattern 셀을 탭하면 테이블 뷰는 탭 이벤트를 받는다. 테이블뷰가 탭 이벤트를 받으면..
2024.03.19 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (1) 2024.03.21 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (2) ToDoList 만들기 (3) 오늘은 새로 배운 MVC 패턴, 클래스 간 데이터 이동 등 강의를 통해 배운 내용을 이번 과제에 한번 녹여내보고 싶어 원래 만들었던 ToDoList 를 버리고 새로 다시 만들었다. 다시 만들면서 취소선 만들기 부분이 생각보다 이해가 되지 않는 부분이 있어 다른 분의 블로그를 참고하여 새로 공부를 다시 했다. 취소선 구현 먼저 원래 사용했던 UISwitch 를 토글하여 true/false 를 구한 후 이 값을 활용하여 사용하는 법보다 UIButton 을 사용하여 select..
문제 설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. func solution(_ s:String) -> Bool { guard s.count == 4 || s.count == 6 else { return false } for char in s { if !char.isNumber { return false } } return true } 먼저 문자의 길이가 4 혹은 6인 경우의 수를 guard 문을 통해 조건을 만들어 준다 guard s.count == 4 || s.count == 6 else { return false } 문자의 길이 수가 4..
MVC 패턴 적용하여 테이블 뷰 구성하기 지난번 MVC 패턴의 기본 개념정도만 정리하는데 그친 반면에 오늘은 이 패턴을 직접 적용시켜 간단한 테이블 뷰를 만들어 보려고 한다. Swift Architecture , MVC 개념 정리 아키텍처(Architectuer) 애플리케이션을 설계하고 구축하는데 사용되는 구조와 패턴을 나타낸다. 모델의 구성과 동작 원리, 구성요소 간의 관계 및 시스템 외부 환경과 관계 등 포괄하여 설명하는 dongdida.tistory.com 먼저 MVC 패턴을 다시 한번 간단하게 말해보면 소스 코드 설계 기법으로써, 모델(Model) , 뷰(View), 컨트롤러(Controller) 의 핵심구조를 이용하여 애플리케이션을 설계하는 것을 말한다. 모델(Model)은 데이터를 담당하고 뷰..
문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{ var sum = 0 for i in stride(from: price, through: price * coun..