
오늘은 유용하게 쓰이는 고차함수에 대해 알아볼게욧! map(_:) map함수는 기존의 배열, 딕셔너리 등을 매핑하여 새로운 배열로 리턴해주는 함수에여. 매핑 방식은 제가 정해주면 됩니다요. 제네릭형태()로 선언이 되어있기 때문에, 어떤 타입에 써도 상관이 없겠져?! 그럼 일단 한 번 예제를 볼까요? 아래와 같이 단순하게 1~5까지 있는 배열을 만들었어요. let numbers = [1, 2, 3, 4, 5] 이 배열에 점을 찍고 map 메서드를 실행해보면? 위와 같이 transform이라는 파라미터를 받을 수 있는 클로저가 나온다리~ map의 정의에서는 제네릭 형태였지만, numbers라는 배열이 Int 형태기 때문에 placeholder 부분을 보면 (Int)로 바뀐 거 보이시져? 그럼 저는 numbe..

오늘은 강의를 듣던 중 넘나 유용해서 정리하게 된 CaseIterable protocol 특집! CaseIterable는 못참지,,, 시작~ CaseIterable protocol 이 프로토콜은 "모든 값들은 컬렉션으로 제공해주는 타입"이에요. 보통 연관값(associated value)가 없는 열거형(Enum) 타입에서 주로 사용하쥬. 이 타입을 사용하면 allCases라는 속성을 통해서 모든 케이스들의 컬렉션에 접근할 수가 있어요. 뭔말이에유? 예시 ㄱㄱㄲㄲ ㄲㄱㄲㄱ 여기 CaseIterable 프로토콜을 채택한 열거형이 있습니다. (연관값 없음) enum CompassDirection: CaseIterable { case north, south, east, west } 이렇게 CaseIterable..

Array에 이어 생각보다 많이 쓰고 있는 Dictionary에 대해 좀 정리해볼게요. 문법 강의만 들을 때는 이걸 어디다가 쓰지,,,했는데 엄청 쓰네,,, 그래서 알아본 Dictionary는 키와 값의 짝으로 이루어진 배열이에요. 처음보는 스탈이라 처음에는 낯설었지만, 쓰다보면 익숙해지더라구여! 이렇게 말이져? var airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"] key : "YYZ", "DUB" value : "Toronto Pearson", "Dublin" Dictionary 모든 키들은 같은 타입이어야하구요, 마찬가지로 모든 밸류들도 같은 타입이어야 합니다. key는 중복이 불가능(유일한 값)해요! (value는 ..

swift의 컬렉션 타입(Collection Type)에는 총 3개가 있쥬? Array, Dictionary, Set이 되겠습니다. 오늘은 Array(배열)부터 차근 차근 알아가볼게유? Array(배열) 말 그대로 "동일한 특성을 가지며 일정한 규칙에 따라 여러 요소가 나열되어 있는 데이터들의 집합"이라고 생각하면 됩니다. // Array 예시 let names: String = ["Anna", "Alex", "Brian", "Jack", "Anna"] 같은 타입의 요소들만 담을 수 있구요, 배열 내의 요소들은 중복이 가능해요! (순서로 구별) [ ](대괄호) 문법 (subscript)을 쓰며, 접근시에는 index로 접근을 합니다. index는 배열의 첫번째 요소부터 0, 1, 2, 3...으로 순서가..

지난 번에는 스토리보드에서 탭바컨트롤러를 만들어봤는데요. 스토리보드가 없어도 탭바컨트롤러를 만들 수 있다네여?! 롸?! 그래서 오늘은 스토리보드 없이 UITabBarController 구현하기 입니다. 1. Main연결 삭제하기 프로젝트를 만든 후 제일 먼저 나오는 General 셋팅에 보면 Development Info-Main Interface가 있는데요. 여기에 있는 Main을 삭제해주시면 됩니다. 2. Info.plist에서 스토리보드 항목 삭제 & 스토리보드 삭제 dicator에 있는 Info.plist에서 Storyboard Name 항목도 삭제해주고, 이제 필요없어진 Main.storyboard항목도 Bye~ 그리고 탭바를 두개 만들 예정이니까, 연결할 뷰컨트롤러(ViewController)..

마지막 시간! 구매하기 버튼 구현 시간입니다~ 2. 구매하기 버튼 구현 구매하기 버튼을 누르면 endTotalLbl에 있는 금액이 alert창에 뜨면서 '취소'와 '확인' 버튼이 나오도록! 오케바뤼 우선 구매하기 버튼에 이벤트가 발생하면 구현될 함수를 선언해줍니다요. @objc func buyBtnTapped(_ sender: UIButton) { } 그리고 리셋버튼하고 똑같이 UIAlertController의 객체를 찍어내도록 해야쥬. alert의 타이틀은 "정말 구매하시겠습니까?" 메시지는 "구매 금액은 ~~원입니다." let alert = UIAlertController(title: "정말 구매하시겠습니까?", message: "구매금액은 \(firstMenu + secondMenu + thirdM..

네비게이션 컨트롤러는 스택에 하나 이상의 차일드 뷰를 관리하는 컨테이너뷰 컨트롤러 한 번에 하나의 차일드 뷰컨트롤러만 보임 뷰컨에서 하나의 아이템을 선택하면 (이전 뷰컨트롤러는 숨기면서 ) 새로운 뷰컨으로 넘어가고 백버튼을 누르면 나왔던 뷰컨트롤러는 사라짐 (다시 아래로 숨겨짐) 네비게이션 컨트롤러는 네비게이션 스택이라는 정돈된 배열을 가지고 차일드뷰를 관리 배열의 가장 첫 번째 뷰컨트롤러를 루트뷰컨트롤러라고 하며, 스택에 가장 아래에 있음 배열의 마지막 뷰컨트롤러는 스택에 맨 위에 있고, 현재 보여지고 있는 뷰컨트롤러임 스택에 뷰컨을 segues와 메서드들을 통해 더하고 제거할 수 있음 또한 네비게이션바의 백버튼을 이용하거나, left-edge swipe gesture를 이용하여 가장 위에 있는 뷰컨트..

오늘은 지난 번 글과 이어지는 2번째 시간!🥳 원래는 버튼 이벤트 및 스텝퍼 구현한다고 했는데, 오늘은 스텝퍼만 구현하다가 또 엄청 길어질 것 같은 그런 넉힘,,,ㅎㅎ,, 일단 시작👩🏻💻 일단 전체 코드를 보고 설명해야겠어여. 설명충,,,🧛♀️ ※ 이것 또한 extention viewController를 만들어서 뒤로 빼기로 했어요. extension ViewController { func addTarget() { //이후 addTarget할 부분. 일단 생략 } //첫 번째 스텝퍼에서 이벤트 발생 시, 구현될 함수 @objc func firstStepperTapped(_ sender: UIStepper) { //스텝퍼의 값을 정수 타입으로 바꿔 stepperNum에 할당! let stepperNum..
- Total
- Today
- Yesterday