반응형
안녕하십니까 공부하는 개발자 입니다.
오늘 포스팅은 Protocol입니다.
⚙️Protocol이란?
Protocol이란 형식에서 공통으로 제공하는 멤버 목록 입니다.
조금 더 쉽게 풀어보자면 메서드나 프로퍼티의 최소 요구사항을 만들어주는 것이라 생각할 수 있습니다.
기본적인 Protocol 채용 방법 입니다.
1
2
3
|
protocol Something{
func doSomething
}
|
cs |
이러한 형식으로 Protocol을 선언한 뒤에 안에 최소 요구사항의 코드를 구현하면 됩니다.
예시에서는 Something의 protocol을 채택하면 반드시 doSomething함수를 같이 구현해줘야 합니다.
Protocol의 채택 방법 입니다.
protocol의 경우에는 여러개 채용이 가능한것을 유의해야 합니다.
⚙️Property
Property에서 protocol의 경우에는 var키워드만 사용이 가능합니다.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
protocol Figure {
var name: String{ get }
}
struct Rectangle: Figure{
//프로토콜에 선언되어있는 부분을 형식에 추가해야한다.
let name = "Rect"
}
struct Triangle: Figure{
var name = "Triangle"
}
//protocol의 경우에는 최소 요구사항이기 때문에 get만 선언을 하였어도 읽기 전용으로 선언해야 하는 것은 아니다.
//구조체를 선언하고 계산 속성 추가
struct Circle: Figure{
var name: String{
return "Circle"
}
}
protocol Figure1 {
var name: String{ get set }
}
//get 과 set이 선언되어 있기 때문에 읽기와 쓰기가 되어야 한다.
struct Rectangle1: Figure1{
//let의 경우에는 쓰기가 안되기 때문에 항상 var를 사용해야한다.
var name = "Rect"
}
struct Circle1: Figure1{
var name: String{
get{
return "Circle"
}
set{
}
}
}
protocol Figure2 {
static var name: String{ get set }
//static으로 선언하면 모든 속성을 형식으로 정의해야한다.
}
struct Rectangle2: Figure2{
static var name = "Rect"
}
struct Circle2: Figure2{
static var name: String{
get{
return "Circle"
}
set{
}
}
}
struct Triangle2: Figure2{
static var name = "Triangle"
}
//overriding를 하고싶다면 struct말고 class로 선언해야한다.
|
cs |
반응형
'Ios > Swift' 카테고리의 다른 글
[Swift] Memory 스위프트 메모리 관리 (0) | 2022.08.06 |
---|---|
[Swift] Protocol_2 스위프트 프로토콜 (0) | 2022.08.05 |
[Swift] Extension 스위프트 형식의 확장 (0) | 2022.08.02 |
[Swift] Initializer_3 스위프트 생성자 3 (0) | 2022.08.01 |
[Swift] Initializers_2 스위프트 생성자 2 (0) | 2022.07.31 |