지정된 이니셜 라이저를 구조의 확장에 넣으면 잘 작동합니다 (아래 예제 참조).
struct BaseOne {
var a = 12
var b = 22
}
extension BaseOne {
init(a: Int){
self.a = a
self.b = 231
}
}
근데 제가 수업을 위해 이걸 할 때 일이 잘못되기 시작 했어요
class BaseOne {
var a = 12
var b = 22
}
extension BaseOne {
init(a: Int){ // Error message poped up here
self.a = a
self.b = 231
}
}
누군가 나를 위해 이것을 설명 할 수 있습니까?
감사
문서에서
지정된 이니셜 라이저의 전체 집합은 클래스의 하위 클래스와 인터페이스 계약의 일부이기 때문에 클래스에 대해 지정된 모든 이니셜 라이저는 확장이 아닌 클래스 정의 자체 내에서 작성되어야합니다.
편집 : 문서 링크
https://github.com/apple/swift/blob/master-next/docs/ObjectInitialization.rst
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다