구조체 & 클래스
선언
struct 구조체이름 {
정의
}
class 클래스이름 {
정의
}
인스턴스생성
var 변수 = 클래스이름();
프로퍼티접근
인스턴스명.프로퍼티이름;
인스턴스비교
' === '
지연 저장 프로퍼티
프로퍼티 정의 앞에 lazy키워드를 붙여 사용한다. 이 키워드가 붙은 프로퍼티는 호출되기전까지는 초기화 되지않는다 클래스 인스턴서가 생성되어 모든 프로퍼티가 만들어지더라도 lazy 키워드가 붙은 프로퍼티는 선언만 될 뿐 초기화 되지않고 프로퍼티가 호출되는 순간 초기화된다.
프로퍼티 옵저버
프로퍼티의 값이 변경될 때 이를 알아차리고 반응하는 객체
willSet 값이 저장되기 직전에 호출되는 옵저버
didSet 값이 저장된 직후에 호출되는 옵저버
var income : Int = 0 {
willSet(newIncome) {
print()
}
didset {
}
}
타입 메소드
인스턴스를 생성하지 않고 호출 할 수 있는 메서드
class func 함수명
Any, AnyObject
objective-c의 NSObject와 같은 역할을 하는 클래스, 클래스타입에 상관없이 모든 종류의 클래스 타입을 저장할 수 있는 범용타입의 클래스 id타입과 같은 형태인듯.
클래스일 때만 정의 가능하다. 구조체는 불가. Any객체는 스위프트에서 제공하는 모든 타입에 대한 범용성을 지원한다.
옵셔널 체인(Optional Chain)
옵셔널 타입으로 정의된 값이 하위 프로퍼티나 메소드를 가지고 있을 때, 이 요소들을 if 구문을 쓰지 않고도 간결하게 사용할 수 있음.
if let name = startup?.ceo?.name{
내용
}
- 옵셔널 체인으로 참조된 값은 옵셔널 타입으로 반환
- 옵셔널 체인과정에서 옵셔널 타입들이 여러 번 겹쳐 있더라도 중첩되지 않고 한번만 처리.
* objective-c 의 #pragma mark는 // mark: -markname으로 사용!
'swift 공부' 카테고리의 다른 글
TableView에 대한 고찰 (0) | 2017.12.14 |
---|---|
[swift] NavigationController Push View Animation 효과주기 (0) | 2017.08.22 |
[arcjeen] 5. swift closure (0) | 2017.03.21 |
[arcjeen] 4. swift 함수 (0) | 2017.03.21 |
[arcjeen] 3.swift Optional (0) | 2017.03.21 |
WRITTEN BY
- arcjeen
ios 관련문의 slimforce@naver.com