Swift Protocol에 대한 간단한 정리

3615 단어 Xcode6SwiftiOS8
Swift의 기본 언어 규범에 대한 자신의 이해가 모호하기 때문에 (자바 언어 규범 w 의뢰)protocol의 복습부터 시작한다.protocol는 아마도 Java가 말한 것일 것이다interface.

Protocol 설치


MyProtocol.swift
protocol MyProtocol{
    func protocolFunction01()
    func protocolFunction02()
}

Class 설치


이어 계승protocolclass를 만들어 보았다.
여기서 실시protocolclass에서 고의로 방법을 하나 빠뜨려 보았다.
물론 protocol에서 선언한 모든 방법을 정의하지 않으면 오류가 발생할 수 있다.

그래서 기본적으로 모든 방법이 선언되었다.
MySuper.swift
class MySuper:MyProtocol{
    func protocolFunction01() {

    }
    func protocolFunction02() {

    }
}
물론 잘못은 사라진다.

Protocol 초기화 선언


이어 init에서 초기화기protocol를 정의해 봤다.
여기에는 특별한 의미가 없지만 String를 매개 변수로 설정해 보세요.
MyProtocol.swift
protocol MyProtocol{
    init(str:String)
    func protocolFunction01()
    func protocolFunction02()
}
클래스MySuper에서 없으므로init(str:String) 당연히 오류가 발생할 수 있습니다.

따라서 protocol에서 정의한 init(str:String)를 클래스로 정의한다.
하지만 다른 오류가 발생했다.Initializer requirement 'I' can only be satisfied by a 'required' initializer in non-final class 'X' required의 이니셜이 아니면 안 될 것 같아요.

그래서 required 수식자를 더해 보세요.

주안점


여기에는 protocol가 발표한 이니셜init에 액세서리required가 필요하다는 것이 중점이다.

좋은 웹페이지 즐겨찾기