Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 네이버 치지직
- Swift 문법
- ObservedObject
- 애플 아카데미 후기
- react
- OS
- ObservableObject
- Swift 디자인패턴
- StateObject
- 데이터베이스 공부
- SWIFT
- 애플 디벨로퍼 아카데미 후기
- 애플 디벨로퍼 아카데미 21주차 회고
- 애플 디벨로퍼 아카데미
- useReducer
- swift문법
- 운영체제
- 앱 비교 프로젝트
- 소프트웨어분석및설계
- 제앱소
- Swift 기능
- sqoop
- Apple Developer Academy @ POSTECH
- 치지직
- 네이버 부스트캠프
- 숭실대
- apple developer academy 후기
- 데이터베이스
- global soop
- iOS 개발 오류
Archives
- Today
- Total
사과하는 제라스
[Swift 문법] 프로토콜 옵셔널 - Protocol을 반드시 다 담진 않아도 된다고? 본문
제라스의 iOS 공부/Swift 문법
[Swift 문법] 프로토콜 옵셔널 - Protocol을 반드시 다 담진 않아도 된다고?
Xerath(제라스) 2023. 8. 19. 15:19목차
728x90
반응형
프로토콜은 그걸 준수하기 위해 쓴다.
근데...
어떤 경우엔 안쓰고 싶을 수도 있잖아..!!
그래서 방법으로 extension을 활용해서 init을 분리해서 반드시 상속하진 않아도 되는 방식으로 짜기도 했다.
하지만 또 다른 근본적인 방법을 고안해보면
@objc를 활용하는 방식이 있을 수 있다.
다음 코드를 보도록 하자.
import UIKit
// 원래 이런 방식으로 extension에 적용함으로서 doCry를 반드시 구현하지 않아도 되도록 구현할 수도 있지만,
protocol Pet {
}
extension Pet {
func doCry(){}
}
// 이런 식으로 오브젝트-c 프로토콜 내에서 optional 키워드를 주면
// 해당 멤버는 반드시 구현하지 않아도 문제가 없도록 프로토콜을 적용할 수 있다.
@objc protocol Animal {
@objc optional func doMoreCry()
}
class Cat : Animal {
}
728x90
반응형
'제라스의 iOS 공부 > Swift 문법' 카테고리의 다른 글
[Swift 문법] Set 타입에서 합, 차, 중복, 중복제거 (0) | 2023.08.19 |
---|---|
[Swift 문법] 딕셔너리 타입의 반복문 (0) | 2023.08.19 |
[Swift 문법] Zip - 서로 다른 배열을 묶어주는 방법 (0) | 2023.08.19 |
[Swift 문법] Equatable 프로토콜 (1) | 2023.08.19 |
[Swift 문법] 고차함수 - reduce (0) | 2023.08.19 |