【Swift】Jump to Definitionを使ってクラスやプロトコルの定義を確認する。(Swift 2.1、XCode 7.2)

2020年6月16日

前回の記事では、UITextFieldDelegateプロトコロルを適用したクラスを作成して、改行またはReturnキー(以下、Returnキー)が押されたときの処理を実装した。⇒「記事

以下は前回実装したコード。

 

textFieldShouldReturnメソッドは、UITextFieldDelegateプロトコロルに定義されているメソッドで、Returnキーが押されたイベントを検知して自動で呼び出される。

「このプロトコルに定義されている他のメソッドにはどんなものがあるか?」、「いま使っているSwiftの標準クラスにはどんなプロパティやメソッドが定義されているのか?」などを知りたくなるときがある。

そんなときに簡単に定義を確認する方法がある。

 

クラスやプロパティの定義の調べかた

例えば、UITextFieldDelegateプロトコルに定義されている他のメソッドを調べたい場合、ソースコードのUITextFieldDelegateを右クリック。表示されたメニューの中から「Jump to Definition」を選択する。

プロトコルを右クリックしてメニューを開いた

 

すると、UITextFieldDelegateプロトコルの定義まで飛ぶことができので、ここに記述されている定義やコメントを参考にしながら自分のコードを作る。

UITextFieldDelegateプロトコルに定義されているメソッド

 

このように標準クラスやプロトコルの定義を確認したくなったら、Jump to Definitionを活用しよう。ちなみに、アシスタントエディタを開いて左に作成中のソース、右に定義を表示すれば横にらみしながら作業ができるので効率的だ。

左にソースコード、右に定義

@available属性とは

先ほどの定義の中で見慣れないものがあるので説明しておく。

まず@availableとは、@availableの下にあるプロパティやメソッドを利用できるOSとバージョンを指定したものである。以下の例では「iOSのバージョン2以降、または、他のOSが利用可能」であることを表している。

 

では、以下の@availabelを翻訳すると何になるか。その通り。「iOS7.0以降、OSX9.0以降、tvOS8.0以降、watchOS1.0以降で利用可能」となる。

 

optionalメソッドとは

メソッド名の前に記載されているoptionalとは、実装しなくてもエラーにならないメソッドである。

通常、プロトコルを適用したクラスは、プロトコルに定義されているプロパティとメソッドは必ず実装しなければならないというイメージがあるが、optionalがついているメソッドは不要ならば省略することができる。

ちなみに、UITextFieldDelegateプロトコルに定義されているメソッドは全てoptionalがついているので、通知して欲しいイベントのメソッドのみを実装すればいい。