2017-12-29 10 views
1

を言う:Swiftプロトコルでどのように機能に名前を付けますか?私はこのようスウィフトでプロトコルを宣言すると、ネットワークモジュール用

Protocol MyNetworkProtocol { 
    func reportError(error: Int) // <-- do you add prefix for this? 
} 

どのようにして、プロトコル内の関数に名前を付けるのですか?あなたはそれの接頭辞を追加しますか?

私は上記のように、私は機能に名前を付ける場合は、呼び出し側が同じようになるので、これを頼む:私はもっぱらMyClassでコードを表示する場合は

class MyClass: MyNetworkProtocol { 

    // some code for MyClass 

    func reportError(error: Int) { 
     // some code to handle it 
    } 
} 

reportErrorはプロトコルの実装として識別することはできません他のクラスの(私はコードにいくつかのコメントを追加しない限り)すぐに。

私はこのようなプロトコルでの関数に名前を付けるために考えています:MyClassで、私はそれが特定のクラスのためのプロトコルの実装だすばやく知ることができるようにするため

Protocol MyNetworkProtocol { 
    func myNetworkProtocol_reportError(error: Int) 
} 

。これは必要ですか?私はいくつかの概念を誤解していますか?

答えて

2

しないでください。代わりに、プロトコルメソッドを別の拡張に分離します。この関数のように&追加

Protocol MyNetworkProtocol { 

    func myNetworkProtocol(_ myNetwork: MyNetworkProtocol, _reportErrot: Int) 

    } 
} 

プロトコルクラスの引数付きのプロトコル名でプロトコル機能の開始で

class MyClass { 
} 

extension MyClass: MyNetworkProtocol { 
    func reportError(error: Int) { 
     // some code to handle it 
    } 
} 
+0

をデバッグするのに役立ちます.... UICollectionView ....など –

-1

は私がのUITableViewのようなプロトコルを実装する場合、私はいつもこれを行う簡単

+0

このイディオムのパワーは、クラスが複数のオブジェクトをコールバックする必要がある場合、どのオブジェクトからメッセージが発信されたかを知ることができるということです。 –

+0

エラーを避けるために処理する必要があります。それが完全に役立つなら、それを試すことができます。そうでなければ、プロトコルでクラス引数を渡す必要はありません –

関連する問題