[스탠포드iOS] Swift 기초문법 정리(Initialization)
·
iOS/스탠포드 iOS 강의
Initialization인자없는 init을 자동으로 생성init을 만든다면 인자없는 자동생성 init을 사용하지 않는다struct MyStruct { var x: Int var y: String}let foo = init(x: 5, y: "hello") init 안에서 할 수 있는 것프로퍼티 값 설정(심지어 이미 기본값을 가지고 있어도 설정 가능)상수도 설정 가능여러 init메소드에서 다른 init메소드를 한개만 호출 가능부모 클래스의 init도 호출 가능 init 안에서 반드시 해주어야 할 것init이 끝날 때는 모든 프로퍼티가 값을 가져야 함 클래스에서는 init메소드로 두개의 타입이 존재 - 지정초기화를 직접 구현하지 않아도 되는 경우: 생성자를 작성하지 않아도 모든 프로퍼티가 기본값을..
[스탠포드iOS] Swift 기초문법 정리(Array, Dictionary, String )
·
iOS/스탠포드 iOS 강의
1. Arrayvar a = Array()var a = [String()let animals = ["Giraffe", "Cow", "Doggie", "Bird"] //var로 변경해야 append 가능animals.append("Ostrich")let animal = animals[5] //crash(array out of bounds)//enumerating an Arrayfor animal in animals { print("\(animal)")} Array 메소드1. filterArray의 모든 요소마다 클로져를 실행하고 true로 반환되는 요소를 포함시켜 반환filter(includeElement: (T) -> Bool) -> [T]let bigNumbers = [2, 47, 118, 5, 9]...
[스탠포드iOS] Swift 기초문법 정리(Optional, Tuple, Data Structure)
·
iOS
1. Optional 옵셔널은 모든 타입의 옵셔널이 될 수 있다 enum Optional { case None case Some(T) } let x: String ?= nil let x = Optional.None let x: String ? = "hello" let x = Optional.Some("hello") switch x { case Some(let value): y = value case None: } 옵셔널은 사슬처럼 연결될 수 있다(옵셔널 체이닝) 두 코드는 서로 같은 기능을 한다 옵셔널 체이닝이 되어있으면 앞에서부터 추출할 수 있는 값을 추출하고 추출할 수 없다면 전체표현에서 nil을 반환한다 그래서 x는 int일수도 optional일수도 있기 때문에 optional int 타입이 된다...
RxSwift(2) - 연산
·
iOS
KxCoding의 Mastering RxSwift 유투브를 보며 공부한 내용을 정리 just, of, from (1) just - 하나의 항목을 방출하는 Observable 생성 시 사용 ※ 중요 : 파라미터로 전달한 요소를 그대로 방출 [코드] let disposeBag = DisposeBag() let element = "😀" Observable.just(element) .subscribe { event in print(event) } .disposed(by: disposeBag) Observable.just([1, 2, 3]) .subscribe { event in print(event) } .disposed(by: disposeBag) [출력] next(😀) completed next([1, 2,..
RxSwift(1)
·
iOS
KxCoding의 Mastering RxSwift 유투브를 보며 공부한 내용을 정리 RxSwift의 장점 [RxSwift Github 샘플 코드] Observable.combineLatest(firstName.rx.text, lastName.rx.text) { $0 + " " + $1 } .map { "Greetings, \($0)" } .bind(to: greetingLabel.rx.text - 두개의 텍스트 필드 값을 공백으로 연결 후 "Greetings"를 앞에 추가, 이를 Label에 출력 - 이를 rxSwift 없이 작성한다면 3라인의 코드로 불가 viewModel .rows .bind(to: resultsTableView.rx.items(cellIdentifier: "WikipediaSearc..
MVVM패턴
·
iOS
https://usinuniverse.bitbucket.io/blog/rxswiftmvvmpart1.html 를 개인적으로 정리한 글입니다. MVVM - Model, View, View Model의 약자 View - View와 애니메이션 ViewModel - 비즈니스 로직과 API 호출 - Model과 상호작용하여 View에서 필요한 데이터를 가지고 있지만, 직접 건네주는 것이 아님 -> View에서 바인딩을 통해 ViewModel에게서 필요한 데이터를 가져가야 함 - View Model은 View에 대해 아무것도 몰라야 하며 UIKit을 import해서도 안됨 RxSwift - View와 ViewModel을 바인딩하기 위한 효과적 도구 - Reactive Programming에 기반을 두고 있음 Rea..