패스트캠퍼스) ios 개발 챌린지 30

[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 20회차 미션

// 파라미터, 반환형 없이도 사용이 가능하다 let voidClosure: () -> Void = { print("iOS 개발자 짱, 클로져 사랑해") } voidClosure() // Capturing Values // 순수함수의 반대라고 생각하면 된다. 클로저에서 외부의 데이터를 capture하여 수정이 가능하다 var count = 0 let incrementer = { count += 1 } incrementer() incrementer() incrementer() incrementer() count // 4 Example 1: Cho Simple Closure let choSimpleClosure = { } choSimpleClosure() Example 2: 코드블록을 구현한 Closure ..

[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 19회차 미션

dictionary var scoreDic: [String: Int] = ["Jason": 80, "Jay": 95, "Jake": 90] var scoreDic : Dictionary = ["Jason":80, "Jay" : 95, "Jake" : 90] scoreDic["Jason"] // 80 scoreDic["Jerry"] // nil. optional하게 처리된다 // 안정적인 optional 처리 방법 if let score = scoreDic["Jason"]{ score } else { //.. score 없음 } scoreDic = [:] //clear scoreDic.isEmpty //비어있는지 scoreDic.count //원소가 몇 개인지 scoreDic["Jason"] = 99 //..

[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 18회차 미션

오늘은 산더미 같은 array의 프로퍼티들에 관해 배웠다. javascript마냥 뭐가 많다. 좀 뇌절 같은 기능들도 있고 암튼 그렇다 자주 쓰이는 몇 가지만 외워 쓰면 편하겠다. 1. 선언 var evenNumbers: [Int] = [2, 4, 6, 8] let evenNumbers2: Array = [2, 4, 6, 8] 선언은 C++에서 벡터 선언하는 것 마냥 할 수 있다. 2. 참조 및 할당 var firstItem = evenNumbers[0] var secondItem = evenNumbers[1] var tenthItem = evenNumbers[9] let firstThree = evenNumbers[0...2] var num: [Int] = [0...3] // error 다른 언어에서와..

[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 17회차 미션

optional은 도전과제로 마무리하고 다음은 collection으로 넘어갔다. 도전과제는 지금까지 배운 내용을 그대로 적용하면 된다. // --- 도전 과제 // 1. 최애 음식이름을 담는 변수를 작성하시고 (String?) , // 2. 옵셔널 바인딩을 이용해서 값을 확인해보기 // 3. 닉네임을 받아서 출력하는 함수 만들기, 조건 입력 파라미터는 String? let favoriteFood: String? = "양고기" if let foodName = favoriteFood { print(foodName) } else { print("좋아하는 음식 없음") } func printNickName(name: String?) { guard let nickName = name else { print("ni..

[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 16회차 미션

이제 환급챌린지도 절반이 지나갔다. 나머지도 성실하게 임하도록 하자 오늘은 optional의 고오급 개념을 배웠다. 이제 슬슬 스위프트에서만 등장하는 기능을 다루다보니 낯선 느낌이 있다. optional의 고급 기능은 총 4가지가 있다 Forced unwrapping Optional binding (if let) Optional binding (guard) Nil coalescing 차례대로 하나씩 살펴보자 1. Forced unwrapping // Forced unwrapping > 억지로 박스를 까보기 var carName: String? carName = "땡크" print(carName) // print: Optional("땡크") print(carName!) // print: 땡크 optiona..

[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 15회차 미션

오늘은 좀 중요한 개념에 대해 배웠다. 오버로드와 순수함수에 대한 개념인데, 3학년 실습시간에 초기에 배웠던 개념이다. (그 수업 진짜 거지같았다.) 함수의 오버로드란? 일단 코드부터 보면 빠르다 func printTotalPrice(price: Int, count: Int) { print("Totla Price: \(price * count)") } func printTotalPrice(price: Double, count: Double) { print("Totla Price: \(price * count)") } func printTotalPrice(가격: Int, 갯수: Int) { print("Totla Price: \(가격 * 갯수)") } 세 함수 모두 이름이 똑같고 하는 일도 똑같다. 가격과..

[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 14회차 미션

이번 시간에 배운 것은 전부 함수에 관한 것이다. 앞으로 이틀동안은 함수에 대해서만 공부할 것같다. 함수가 중요하긴 하다. 그중에서도 첫 수업에서는 파라미터에 디폴트 값을 넘겨주는 방법과 반환형을 명시하는 방법을 배웠다. 이렇게 파라미터에 값을 미리 선언해주면 해당 파라미터에 따로 값을 넣지 않더라도, 디폴트 값으로 연산해준다. 다른 언어에서도 디폴트값을 이용할 수 있는 경우가 있지만, 함수 호출시 파라미터명을 명시하지 않기 때문에 디폴트값을 제외하고는 순서대로 인자 값을 넘겨줘야한다. 그런 점에서 파라미터명을 명시하는 스위프트의 문법은 좋다. func printTotalPriceWithDefaultValue(price: Int = 1500, count: Int) { print("Total Price: ..

[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 13회차 미션

오늘은 저번 시간에 이어 switch의 확장, 그리고 function에 대해 배웠다. 강의를 들으면서 쭉 들었던 생각인데, 이 강의의 난이도가 완전 코딩을 안해본 초보 대상이라기엔 생략되는 개념이 많고, 그렇다고 계속 개발을 해온 개발자 대상이라기엔 기초적인 부분이 있었는데, 이번 수업을 들으면서 c언어 정도를 다룰 수 있는 사람이 듣기에 가장 적합한 난이도라는 결론을 내렸다. 뭐 일단 해당 언어의 문법 위주로(조건문이나 반복문 등) 가르쳐주는게 c언어나 java를 갓 배운 사람이 이해하기에 익숙한 난이도인 것 같다. 내가 개발을 막 배우기 시작했을 때 이 강의를 들었다면, 지금쯤 ios 개발자가 되어있었을까? 스위프트의 switch는 강력하다. 아마 이 언어를 개발한 사람이 switch를 엄청 좋아했나..

[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 11회차 미션

오늘 배운 내용은 scope와 flow control scope의 경우는 저번 시간에 배운 local, instance 변수와 비슷한 내용이다. 어떤 변수나 메소드가 적용될 수 있는 범위를 말한다. var hours = 50 let payPerHour = 10000 var salary = 0 if hours > 40 { let extraHours = hours - 40 salary += extraHours * payPerHour * 2 hours -= extraHours } salary += hours * payPerHour 예를 들어 해당 코드에서 if구문 내의 extraHours는 if구문 바깥에서 참조할 수 없다. 보통 { } 중괄호를 기준으로 구분된다. { } 바깥의 hours, payPerHou..