반응형
프로토콜에 초기화 기능을 사용할 수 있습니까?
이 방법으로 프로토콜을 구현하려고 할 때 :
protocol Serialization {
func init(key keyValue: String, jsonValue: String)
}
다음과 같은 오류가 발생 합니다. 함수 선언에 식별자가 필요합니다.
이 오류가 발생하는 이유는 무엇입니까?
그래 넌 할수있어. 그러나 당신 func
은 앞에 두지 않았습니다 init
.
protocol Serialization {
init(key keyValue: String, jsonValue: String)
}
여기서 핵심 포인트 :
- 프로토콜 및 구현을 그 클래스는 결코 키워드가 없습니다
func
의 앞에init
방법. - 클래스에서
init
메서드가 프로토콜에서 호출되었으므로 이제init
메서드 앞에 키워드 를 붙여야합니다required
. 이것은 당신이 따르는 프로토콜이 당신에게이init
방법 을 필요로한다는 것을 나타냅니다 (독립적으로 그것이 좋은 아이디어라고 생각했을지라도).
다른 사람들이 다루는 것처럼 프로토콜은 다음과 같습니다.
protocol Serialization {
init(key keyValue: String, jsonValue: String)
}
예를 들어이 프로토콜을 따르는 클래스는 다음과 같습니다.
class Person: Serialization {
required init(key keyValue: String, jsonValue: String) {
// your logic here
}
}
통지 요구 의 앞에 키워드 init
방법.
참조 URL : https://stackoverflow.com/questions/25694384/can-i-have-an-init-func-in-a-protocol
반응형
'programing' 카테고리의 다른 글
asm, asm volatile 및 clobbering 메모리의 차이 (0) | 2022.07.10 |
---|---|
vuejs 구성 요소의 사용자 php captcha (0) | 2022.07.10 |
WildFly에서 기본 포트 8080을 변경하는 방법 (0) | 2021.01.18 |
도커 이미지의 sha256 코드는 어디에서 찾을 수 있습니까? (0) | 2021.01.18 |
Angular 2/4/6/7-라우터를 사용한 단위 테스트 (0) | 2021.01.18 |