Swift基本講座

プロトコルのサポート

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
クラスや構造体に、メソッドやプロパティがある事を保証するための、プロトコルについて説明します。プロトコルを使う事で、継承関係のないオブジェクトや構造体の値を機能でまとめて扱う事ができます。
講師:
05:34

字幕

このレッスンでは swift の プロトコルについて説明します プロトコルを使うことで class や構造体に 特定のメソッドやプロパティがあることを 保証することができます それでは実際にプロトコルの宣言を してみたいと思います プロトコルを宣言する時には この protocol というキーワードを使って その後ろにプロトコルの名前を書きます ここでは SayHelloProtocol というプロトコルを作成して この中に Say Hello というメソッドがあります ということを宣言します 次にこのプロトコルを使って クラスをつくってみましょう Player という class をつかって この Player がこの― SayHelloProtocol というプロトコルに 準じています ということを宣言するために このように継承と同じ書き方で :(コロン)を使って この Player クラスの宣言の後ろに SayHelloProtocol の名前を書いてやります そうするとこの Player は SayHelloProtocol の中で宣言されている SayHello というメソッドがありますよ ということを宣言したのと同じことに なりますので ここでエラーがでていますが SayHello メソッドがない状態では 何かが欠けていますよと― 言って このようにエラーで教えてくれます ですのでここに SayHello メソッドを 作ってやらなければいけませんので SayHello のこのメソッドを 例えば Println で― 「こんにちは」と出力する プログラムを書いて これでこの Player にでていたエラーが なくなります この Player は現在 SayHelloProtocol に 準拠しているということができます プロトコルを使うことができるのは class だけではなくて struct 構造体に対しても 使うことができますので 構造体を宣言する時に やはり SayHelloProtocol に― 準じていますよというふうに宣言することで この構造体も SayHello のメソッドを 用意するまではエラーがでて― しっかりとこの SayHello のメソッドを 実装しないと怒られると― いう感じになります 今この時点で Player とEnemy は どちらも SayHelloProtocol に― 準拠したクラスとオブジェクトに なっていますので この SayHelloProtocol を起点に 機能で纏めて両方のオブジェクトを扱う ということができるようになります 実際にやってみましょう この Player と Enemy を格納するための characters という配列を用意して ここにこの Player のオブジェクトと それから Enemy のこの構造体の値を どちらも格納しようというふうに 書いてみます これは当たり前ですが クラスと構造体ですので 仮にこれが Enemy がクラスだったとしても Player と Enemy の間には 継承関係がありませんので なにかしら共通するものがないと 一緒に配列に入れることはできませんので この characters の配列の中に 通常であれば2つを同時に 格納することはできません ですがこの SayHelloProtocol に どちらも準拠している― という特徴がありますので その特徴を使って この characters の後ろに SayHelloProtocol に準拠していますよ というふうに書いてやることで この Player も Enemy も どちらも SayHelloProtocol に準拠しているので 格納することができる ということになります このようにキャラクターを格納した― この characters を使って 例えば for in 文を使ってやると この characters の中に入っている キャラを1つ1つ取り出して このキャラに対して SayHello を お願いする そうするとこちらのほうに Console Out がでていますけど 「こんにちは!」とか 「やあ!」とか しっかりとこの SayHello の機能が 実行されているということがわかります そしてプロトコルには このメソッドだけではなくてプロパティがある ということを宣言することもできますから 例えば Life がありますよということで Life 変数が Life のプロパティがあることをこのように Int 型の Life がありますよと 宣言することもできます 但しこの時点で この Life の後ろ エラーがでているのですが これがどんなエラーかというと この Life は get 専用なのか それとも get と set 両方対応しているのか ということを宣言しないと プロトコルの宣言時にエラーが出ます ここでは Life は少なくとも get させて下さいと いうことをこのようにお願いしておいて この Player にこの変数 Life がありますよ ということを― 例えば 240 という Life で初期化して 用意しておいたり Enemy のほうにも この Life を 例えば 1000 で初期化して用意しておいたり ということをしてやることで しっかりとこの SayHelloProtocol にメソッドの面でも プロパティの面でも準拠している ということができるようになります このレッスンではオブジェクトや 構造体の値に対して メソッドやプロパティがあることを保証できる プロトコルについて説明しました

Swift基本講座

このコースでは、iOSやOS X用のアプリをとても簡単に開発することができるプログラミング言語Swiftについて解説します。if文やfor文などの制御命令の使い方から変数や定数、配列や辞書の使い方まで基本的なSwiftプログラミングの知識をPlayground上で説明します。Swiftプログラミングの知識を効率的に学ぶのに、このコースをぜひお役立てください。

2時間59分 (35 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2015年09月23日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。