回答編集履歴
2
修正
answer
CHANGED
@@ -51,7 +51,7 @@
|
|
51
51
|
var delegate: ProtocolA!
|
52
52
|
|
53
53
|
func something() {
|
54
|
-
//
|
54
|
+
// プロトコルAに適合しているインスタンスに対してmethodA()を呼び出す
|
55
55
|
delegate.methodA()
|
56
56
|
}
|
57
57
|
}
|
1
追記
answer
CHANGED
@@ -1,16 +1,23 @@
|
|
1
|
-
|
1
|
+
Delegate & Protocol の簡単な例
|
2
|
+
---
|
2
3
|
|
3
4
|
・「プロトコルA」を「UITextFieldDelegate」
|
4
|
-
・「クラスA」
|
5
|
+
・「クラスA」 を「ViewController」
|
5
|
-
・「クラスB」
|
6
|
+
・「クラスB」 を「UITextField」
|
6
|
-
・「methodA」
|
7
|
+
・「methodA」 を「func textFieldShouldReturn(textField: UITextField) -> Bool 」
|
7
8
|
と置き換えると分かりやすいかと思います。
|
8
9
|
|
9
10
|
※func textFieldShouldReturn(textField: UITextField) -> Boolは以下で質問されているメソッドです。
|
10
11
|
こちらはoptional扱いなので実装が必須ではありませんが、、、
|
11
12
|
[superクラスのメソッドをoverrideせずに上書きしている?](https://teratail.com/questions/30717)
|
12
13
|
|
14
|
+
---
|
13
15
|
|
16
|
+
UITextFieldクラスには同じ様にUITextFieldDelegateプロトコル型の変数が定義してあります。
|
17
|
+

|
18
|
+
|
19
|
+
|
20
|
+
|
14
21
|
```swift
|
15
22
|
|
16
23
|
// プロトコルAを定義(プロトコルAに準拠したものは、必ずmethodAを実装しなければいけない)
|