전체 글
iOS . 오토레이아웃 - Aspect Ratio
Aspect Ratio 화면의 객체의 크기를 비율로 지정할 때 사용 이미지나 제목 등을 다양한 화면에서 고정된 비율의 크기로 보여주기 위해 사용!
[Swift] Hashable(Hash/HashValue) 프로토콜
유일한 값을 갖도록 해서 Dictionary의 키값 또는 Set요소가 될 수 있게 하는 프로토콜 두 객체나 인스턴스를 비교하는데 사용되는 프로토콜이다. Hashable프로토콜은 데이터 타입의 값을 해시코드나 해시값으로 변환한다. Equatable 프로토콜을 상속한다. Hashable을 알기 전에.. 딕셔너리의 Key값은 Hashable해야한다. Hash값을 갖는다 라는 뜻이다.. 그게 무엇이냐? Hash함수 어떤 숫자/글 등을 input으로 사용해 어떤 알고리즘을 통해 고정된 길이의 숫자/글자이면서 유일한 값이 나오는 함수 어떤 알고리즘인지는 중요하지 않다. 해쉬값이라는 예는 아래와 같다. 예 ex). "steve", "cooker", "ilon"가 어떤 함수를 거치게 되면 해쉬(Hash)함수⤵️ (ha..
[Swift]. @어트리뷰트 키워드와 다양한 키워드들
어트리뷰트 키워드 컴파일러에게 추가적인 정보를 제공하는 키워드 @available, @objc, @escaping, @IBOutlet, @IBAction, @discardableResult ... 1. 선언에 추가적인 정보를 제공 @available(iOS 11.0, macOS 10.12, *) class MyClass{ //... } //MyClass 선언은 iOS 11.0, macOS 10.12이상에만 적용되는 클래스 //그보다 아래 버전에선 컴파일러가 못읽는다. MyClass의 선언에 대한 추가정보 제공 2. 타입에 추가 정보 제공 func doAnything(completion: @escaping() -> ()){ //... } //@escaping: () -> () 타입에 대한 추가정보 제공 @..
RxSwift(44). Delegate Proxy
Delegate Pattern 애플이 제공하는 기본 프레임워크는 다양한 부분에서 Delegate패턴을 사용하고있다. DelegatePattern은 그동안 다양한 문제를 해결해주었고 익숙한 장점이 있지만 RxSwift와는 어울리지 않다. RxSwift와 함께 사용하는데는 전혀 문제가 없다. Delegate Proxy를 사용할지 Delegate Pattern을 사용할지는 선택이다. Delegate Proxy Binder, ControlProperty, ControlEvent를 활용하면 많은 부분을 RxSwift방식으로 확장할 수 있다. 하지만 모든 부분을 확장할 수 있는건 아니다. 예를들어 위치기반 코드를 구현한다면 CLLocationManager를 사용한다. CLLocationManagerDelegate를..