일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Refactoring
- ios
- Xcode
- MVVM
- Observable
- 리펙터링
- clean architecture
- 애니메이션
- swiftUI
- collectionview
- rxswift
- tableView
- swift documentation
- map
- UITextView
- combine
- UICollectionView
- ribs
- 스위프트
- 클린 코드
- 리팩토링
- SWIFT
- Human interface guide
- Protocol
- RxCocoa
- 리펙토링
- Clean Code
- HIG
- uitableview
- uiscrollview
- Today
- Total
목록init (4)
김종권의 iOS 앱 개발 알아가기
super.init 호출 해당 클래스의 내부 property를 모두 초기화 후 super.init을 호출해야 하며, super.init호출 후에만 self.로 함수 호출이 가능 super.init 호출 타이밍 해당 클래스 내부에 property를 초기화 하는 경우 super.init 호출 전에 해당 클래스 내부에 property를 모두 초기화 해당 클래스 내부에서 self.로 함수를 호출하는 경우 super.init 후에 self.호출 init과 내부 property 초기화 주의 사항 init함수 블럭에서 초기화를 하지 않고, 함수를 호출하여 초기화하면 컴파일 에러 발생 self.참조는 super.init 호출 후에
초기화의 핵심 초기화 종류는 2가지 (Designated, convenience) 초기화의 목적: 모든 멤버 초기화 (1단계) + 상속받은 멤버들 customizing (2단계) Designated initializer (지정 초기자) 클래스의 모든 프로퍼티를 초기화 해야함 클래스 타입은 반드시 한 개 이상의 지정 초기자가 필요 init(parameters) { statements } Convenience initializer (편의 초기자) 옵셔널 Convenience init 내부에서 반드시 Designated Init이 호출되어야 함 (self.init()) convenience init(parameters) { self.init() statements } 초기화 규칙 - 모든 멤버가 초기화 되어야..
let b = Boo() 원래의 의미는 "let b = Boo.init()" 1. init의 존재 이유 - 모든 저장 프로퍼티들은 초기화 되어야 함, init키워드는 이것을 도와줌 1 2 3 4 5 6 7 8 9 10 11 class Test{ var a:Int! // nil로 초기화 var b:Int? // nil로 초기화 var c: Int // init으로 초기화 var d: Int // error init(tmp: Int){ self.c = tmp } } (d변수가 초기화 되지 않아서 error) 2. 초기화의 종류 1) 초기화 메소드의 델리게이션: super.init() (연쇄적인 초기화) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 class A{ va..
1. 특성 - 단일 상속만 지원 ※ protocol은 다중 구현 가능 1 2 3 4 5 6 7 8 import UIKit class C1{ } class C2: C1, UIContentContainer, UIAppearanceContainer{ // 다중 구현한 protocol과 단일 상속한 C1구별 } 2. 오버라이딩 - override키워드 붙임 - 메서드 뿐만 아니라 연산프로퍼티 변수 또한 오버라이딩 가능 - 수정 할 수 있는 변수로 하려면 역시, set키워드 넣을 것 - didSet, willSet이용 가능 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import UIKit class Machine{ var name: String = ..