<옵셔널 언래핑>
- 옵셔널 바인딩 if let
값이 주어졌을 경우 if let 을 통해 언래핑을 하더라도 언래핑된 값은 해당 블록에서만 사용되기 때문에 블록을 벗어난 print 에서는 Optional(10)으로 출력된다
- 옵셔널 바인딩 guard let
- 기본값 제공
- 강제 언래핑 : nil이 아님이 확실할 때 사용함. 지양하는 방식
<프로토콜>
- 프로토콜 자체는 기능을 구현하지 않으며, 오직 설계만 제공함
- class, struct, enum 에서 프로토콜을 채택할 수 있으며, 프로토콜에서 정의한 프로퍼티와 메서드를 모두 구현해야 함
- 프로토콜에서 정의된 프로퍼티는 항상 var 로 선언되어야 함
- 프로토콜에서 정의하는 프로퍼티는 읽기 전용 { get } 또는 읽기-쓰기 가능 { get set } 으로 설정 가능함
- 프로토콜에서 정의하는 메서드는 이름, 파라미터, 리턴타입 만 선언하며, 구현부{ } 는 작성하지 않음
- 프로토콜 정의 시, AnyObject 를 채택하면 class 전용 프로토콜로 만들 수 있음(struct, enum에서 사용 불가)
<확장>
- 기존의 class, struct, enum, protocol 타입에 새로운 기능을 추가할 수 있는 키워드
- 타입의 원본 코드를 수정하지 않고도 수평적인 기능을 확장할 수 있어 코드의 유지 보수와 가독성이 향상됨
- 하나의 타입에 여러 번 extension 가능
- 확장할 수 있는 것 : 연산 프로퍼티(저장 프로퍼티 불가능), 메서드, 새로운 init, 중첩된 타입
'ios 개발 - 내배캠' 카테고리의 다른 글
[11/5 iOSDev] 객체지향 프로그래밍 (2) | 2024.11.05 |
---|---|
[11/4 iOSDev] Closure (2) | 2024.11.04 |
[10/31 iOSDev] 계산기 만들기 (1) | 2024.10.31 |
[10/30 iOSDev] Class & Struct (1) | 2024.10.30 |
[10/28 iOSDev] Swift 기초 강의 (0) | 2024.10.28 |