본문 바로가기

SWIFT9

[iOS/Swift] 초기화와 상속 Swift에서의 초기화 종류: designed init, convenience init (지정 초기화, 편의 초기화) 단계 모든 member 초기화 → 상속 받은 member 커스텀 지정 초기자 init(parameters) { statements } 클래스 내의 모든 프로퍼티를 초기화한다. 클래스마다 필수적으로 하나씩 가진다. 편의 초기자 convenience init(parameters) { self.init() // ✅ statements } Optional 이다. 내부에 반드시 지정 초기자를 호출해야 한다. (위 코드의 self.init() 부분을 말한다.) 초기화 규칙 1. 모든 멤버의 초기화를 보장하자 ! 지정 초기자 ⇒ 반드시 super class의 지정 초기자를 호출해야 한다. (= del.. 2022. 5. 2.
[Swift] Hashable, Set, Dictionary Hashable 프로토콜이다. → 구조체, 열거형, String, Int, Float, Bool, Set 등에서 기본적으로 제공된다. 사용자 정의 타입에서 채택만 하면 → Set에 들어갈 수 있는 타입도 되고, Dictionary의 Key로도 들어갈 수 있다. 코드 예시 struct GridPoint: Hashable { var x: Int var y: Int } // 이렇게도 되고 var majayongSet = Set() // 이렇게도 된다 var majayongDic: [GridPoint: Int] = [:] Set Swift’s Collection (Array, Dictionary, Set)에 속한다. 컬렉션이 가지는 기본 메서드들을 사용할 수 있다. .contains(), .firstIndex(.. 2022. 4. 26.
[Swift] #Selector() 개념 - 메서드를 식별할 수 있는 고유의 이름을 말한다. - 구조체 struct 타입이며, 컴파일 시간에 지정된다. - UIKit 내부의 Objective-C 런타임으로 실행되는 메서드에서는 #Selector()를 파라미터로 전달 받는데, 이 때 (= 이 전달에) 필요한 인스턴스의 타입을 말한다. - 함수 표기형 방식 (= 인자 레이블을 콜론(:)으로 구분하여 나열함) 으로 전달된다. (일급 객체인 함수를 매개변수로 전달하기 때문 ...! ) 사용 예시 UI 요소에 Action 관련 @objc 함수를 Target으로 추가해줄 때 → #Selector() 타입 안에다가 넣어준다. 코드 예시 override func setTargets() { super.setTargets() [signInView.signU.. 2022. 4. 19.