본문 바로가기

swift28

Day04 For_Loops For 반복문은 for each와 거의 같다 레인지를 활용하는 방법 익히기 📌이상 이하 0...5 📌이상 미만 0.. index 혹은 iterate 때문에 i로 쓰는게 일반적 -> i를 나중에 다시 쓰지않는다고 알림창이 뜨기때문에 _로 대체사용가능 📌where 이후는 반복을 위한 조건을 사용할 수 있음 짝수일때 //for index in 0.. 2021. 11. 29.
Day02 : For-each(자료 보강 필요) 반복문 콜렉션은 데이터를 모아둔 것이다. 배열, 셋, 딕셔너리 가 있다. 튜플도 비슷하지만 약간 다른 성격을 가지고 있다. For-In Loops는 배열안에 들어있는 데이터의 수 만큼 반복하는 것이다. For-In Loops에 where을 사용하면 조건을 넣을 수도 있다. 아직 초반이라 for - each에 대해 자세히 설명하기는 어렵다. 메서드에 대해 배우고 다시 포스팅 예정 참고 : https://babbab2.tistory.com/95 Swift) for - in / forEach 제대로 알고 쓰기 안녕하세요 :) 소들입니다 🌸 오늘은 우리가 Swift로 프로그래밍을 하다보면 정말정말 많이 쓰는 for - in forEach 에 대해서 알아보려고 해요!!!! 이 둘의 사용법은 물론 차이점에 대해서도.. 2021. 11. 28.
Day01 : Conditional Statements_If if는 Control Flow 에서 Conditional Statements(조건문)에 해당된다. 기본적으로 Boolean값을 가지고 있으며 참, 거짓에 해당하는 경우의 코드를 적어주어야 한다. 기본적인 형태는 아래와 같다. if (조건){ [참인 경우, 실행할 코드] } else { [거짓인 경우 실행할 코드] } 그리고 삼항연산자의 형태인 한줄의 코드로도 만들 수 있다. [조건에 해당하는 코드] ? [참인 경우, 실행할 코드] : [거짓인 경우 실행할 코드] 헷갈릴 수 있는 점 1. 조건에 해당하는 코드에 ==, != 2. [조건에 해당하는코드] 앞에 !가 있는지 여부 3. 조건에 해당하는 코드는 ()를 생략가능 import UIKit var isDarkMode : Bool = true //var i.. 2021. 11. 26.
옵셔널 복습 고급기능 4가지 // Forced unrapping // Optional binding (if let) // Optional binding2 (guard) // Nill coalescing import SwiftUI var carName: String? = "땡크" //고급기능 4가지 // Forced unrapping // Optional binding (if let) // Optional binding2 (guard) // Nill coalescing // 영어로 공부하는 이유 : 공부하다가 막히는 경우 영어로 검색하면 보다 다양한 루트를 발견가능 // Forced unrapping > 박스안에 있는 값을 꺼내서 사용할 때, 강제로 여는 것 // Optional binding (if let) > 부드.. 2021. 11. 18.
생성자 이해하기, 2-phase Initialization, Convenience Initializer Initializer (생성자) 앞선 강의에서 Inheritance(상속)에 대해서 공부했다. 상속받은 클래스들을 생성할때 기본 생성자를 가지고 만드는데 부모자식간의 모양이 비슷한 것을 알 수 있다. 하지만 자식 클래스는 부모와 다르게 만들 수도 있다. import UIKit // 처음 코드 struct Grade { var letter: Character var points: Double var credits: Double } class Person { var firstName: String var lastName: String init(firstName: String, lastName: String) { self.firstName = firstName self.lastName = lastName } .. 2021. 10. 20.
클래스상속은 언제 하면 좋을까? 개발철학에 따라 다르다고 할 수 있다. 상속은 중복된 코드를 제거할 수 있는 기회가 있다. 하지만 상속이 잦아지면 상속의 깊이가 깊어져서 유지보수가 어려워질 수 있다. 사실 경험에서 나온다. 1. Single Responsibility 단일책임 ; 클래스가 한가지 점만 취급하는가? 2. Type Safety 타입이 분명해야할 때 ; 부모 혹은 다른 자식의 클래스를 명확하게 표현해야하는가? 3. Shared Based Classes 다자녀가 있다 ; 기본동작에 대해서 다양하게 구현해야하는가? 4. Extensibility 확장성이 필요한 경우; 외부앱에서 사용되어야 하는가? , 확장성이 필요한가? 5. Identity 정체를 파악하기 위해 ; 객체 자체의 정체성을 구분하고 싶은가? 1. 각 클래스는 한개의.. 2021. 10. 19.
상속 개념을 코드로 익히기 기본적인 형태 class Parent class Child : Parent Person : Super Class Student: Sub Class (Child Class) 아래 코드를 보자 Person과 Student라는 클래스가 두개 있다. 자세히보면 같은 내용의 코드들이 중복되어있는 것을 알수있다. 이럴때 상속이라는 개념을 적용할 수 있다. struct Grade { var letter: Character var points: Double var credits: Double } class Person { var firstName: String var lastName: String init(firstName: String, lastName: String) { self.firstName = firstNa.. 2021. 10. 18.
클래스, 언제 클래스? 언제 스트럭트? 클래스 개념 클래스는 스트럭쳐 처럼 관계가 있는 것들을 묶어서 표현한다. Object = Data + Method Objects는 클래스와 스트럭쳐 형태로 만들 수 있다. 하지만 두가지의 차이점은 실제 동작에서 차이가 있다. 생성되는 인스턴스가 할당되는 메모리의 차이가 있다. Structure는 Stack이라는 공간에 생성된다. Class는 Heap이라는 공간에 생성된다. Stack Heap은 다른 속성을 갖고 있는 메모리 공간이다. Stack 시스템에서 당장 실행해야하거나 타이트하게 컨트롤 및 매니징 해야하는 경우 함수를 생성 , 처리후 리턴하고 해당 변수도 스택에서 제거가 되나. 효율적이고 빠르다. Heap 시스템에서 클래스 같은 레퍼런스타입을 저장하는 데 사용된다. 큰 메모리 풀을 가지고 있어서 시.. 2021. 10. 16.
프로퍼티 vs 메소드 두개념이 언뜻 보면 비슷해보여 헷갈릴 수가 있어 개념을 다시 비교해보자 1. computed property 이미 저장된 것을 가지고 재가공할때 쓰임 2. 함수로 만드는 것 결론은 사실 같다 어떤 것이 더 좋을까? person.fullName person.fullName() 개념 Property: 호출시 (저장된) 값을 하나 반환한다. Method: 호출시 어떤 작업을 한다. 만약 Method가 그냥 값을 리턴하는 작업만 한다면? 2021. 10. 14.
프로퍼티 개념 #StoredProperty #ComputedProperty #instanceProperty #TypeProperty #willSet #didSet #lazyProperty 앞서서 우리는 Structure를 배웠는데 관계된 것들을 묶는 것을 말한다. 그리고 오브젝트도 관계된 것들을 묶어준 것이라고 언급한 적이 있다. Object = Data + Method 스트럭쳐를 구현하면서 데이터와 메서드를 만들었다. 우리가 예전에 풀었던 내용을 보면 이런 구조로 되어있다. struct Store { //-------> 데이터 파트 let loc: Location let name: String let deliveryRange = 2.0 //-------> 메소드 파트 //배달가능한지보는 함수 func isDelive.. 2021. 10. 13.