코딩하는 제리

[Swift] protocol 본문

iOS/SwiftUI

[Swift] protocol

JerryCho 2022. 1. 12. 10:55

- 클래스, 구조체, 열거형에 프로토콜을 채택 할 수 있음.

class 클래스명: 부모 클래스명, 프로토콜명 {}

class 클래스명: 부모 클래스명, 프로토콜명1, 프로토콜명2 {}

class 클래스명: 프로토콜명 {}

class 클래스명: 프로토콜명1, 프로토콜명2 {}
protocol 프로토콜명 {
	프로퍼티명
	메서드선언		// 메서드는 선언만.
}

protocol 프로토콜명: 다른프로토콜1, 다른프로토콜2 {
	// 다중 상속 가능
}

protocol SomeProtocol {
	var x: Int { get set }		// 읽기/쓰기 가능
	var y: Int { get }			// 읽기 전용
	static var tx: Int { get set }
	static func typeMethod()	// 메서드는 선언만.
	func random() -> Double		// 메서드는 선언만.
}
protocol Runnable {
	var x: Int { get set }
	func run()
}

class Man: Runnable {	// 채택, adopt
	var x: Int = 1		// 준수, conform
	func run() { print("run method") } // 준수, conform
}

// class Man에 x, run() 정의가 없으면 에러 발생
// type 'Man' does not conform to protocol 'Runnable'

 

 

'iOS > SwiftUI' 카테고리의 다른 글

[Swift] Error Handling (Exeption Handling)  (0) 2022.01.12
[Swift} 옵셔널 체이닝(Optional Chaining)  (0) 2022.01.12
[Swift] 접근 제어  (0) 2022.01.12
[Swift] extension  (0) 2022.01.12
[Swift] 상속, super, override  (0) 2022.01.12
Comments