[Swift]プロトコル/Delegateについて
契約とは?
UItableViewDataSourceプロトコルでは、CellForRowAt、NumberOfSections...定義などの関数が表示されます.
→すべての可能性を考えにくいから!今から理解してみましょう.
例えば、先生のプロトコルがあれば、その中の関数は何がありますか.
protocol Teacher{
var subject : String { get set }//과목
var homeroom : String { get set }//담당반
func teach() //가르치다
func giveHomework() //숙제를 내주다
}
プロトコルは、名前、タイプ、getable、setableを示します(プロトコルは常にvarとして宣言する必要があります).地球の上で国語の先生の数学の先生の英語の先生があるべきです...先生たちが出るたびに協議を再開しますか?
→そうしないためにプロトコル/ゲートウェイモードを使う…
すべての可能性を考えるのは難しいので、実現はTeacherプロトコルを採用した場所で行われています!
struct Kim : Teacher{
var homeworkPgs : Int = 10
var subject : String = "수학"
var homeroom : String = "3반"
func teach(){
print("와 진짜 명강의")
}
func giveHomework(){
homeworkPgs += 10
}
}
print(Kim.subject)
print(Kim.homeroom)
print(Kim.teach())
Kim.giveHomework()
//결과값 한번 맞춰봐...
プロトコルを採用すると、このような赤いエラーが発生することがあります!
「FirstViewControllerがデータ配信プロトコルを遵守していない」
これは、プロトコル内のすべてのコンテンツが実装されていないために発生したエラーです.
ここで注意しなければならないのは,プロトコルで宣言されているように実現しなければならないことである.
ここでは、パラメータ名が変更されたり、タイプが変更されたりすると、他のメソッドとして認識されるため、プロトコルの宣言に従って記録する必要があります.
2. Protocol Requirements
Delegateとは?
3. Delegate Pattern
4.委任使用順序の例
委任プロトコルタイプ
Reference
この問題について([Swift]プロトコル/Delegateについて), 我々は、より多くの情報をここで見つけました https://velog.io/@dlwns33/Swift-ProtocolDelegate-알아보기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol