[Swift]プロトコル


ガイドルート-iOSプログラミングのSwiftベース


ストレージ・プロトコルとは

  • プロトコルは、特定のロールを実行する方法、プロトコル、およびその他の要件の青写真を定義する.
  • 構造体、クラス、および列挙式は、特定の機能を実行するためにプロトコルの要件を達成することができる.
  • は、任意のプロトコル要件を満たすタイプがプロトコル(Conform)を表す.
  • タイプのプロトコル要件を満たすには、プロトコルのすべての青写真機能を実現する必要があります.プロトコルは、独自に機能を実装するのではなく、機能の定義とプレゼンテーションにすぎません.
  • protocol Talkable {
        
        // 프로퍼티 요구
        // 항상 var 키워드 사용
        var topic: String { get set }
        var language: String { get }
        
        // 메서드 요구
        func talk()
        
        // 이니셜라이저 요구
        init(topic: String, language: String)
    }

    プロトコルの継承

  • プロトコルは、既存のプロトコルよりも高い要件を追加できる1つ以上のプロトコルを継承します.
  • プロトコル継承構文はクラスの継承構文に似ていますが、プロトコルはクラスとは異なり、複数の継承であってもよい.
  • クラスで継承とプロトコルの採用を同時に行うには、継承するクラスを指定してから、使用するプロトコルのリストを作成します.
  • プロトコルコンプライアンスの検証

  • is、as演算子を使用して、インスタンスが特定のプロトコルに準拠しているかどうかを確認できます.
  • someAny is Readable 
    if let someReadable: Readable = someAny as? Readable {
        someReadable.read()
    }

    💡 インタフェースとプロトコルの違い

  • Interface
    -プロパティの初期値の設定を許可
    -すべての宣言を実装する方法
    -静的(静的)メンバーを宣言できません
  • Protocol
    -プロパティの初期値を設定できません
    -オプションのキーワードを選択可能に実装
    -静的(静的)メンバーを宣言できる