Swift基本講座

型のチェックとダウンキャスト

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
Swiftにおいてオブジェクトの型をチェックする方法と、チェックしたあとにダウンキャストして、その型として扱う方法について説明します。
講師:
05:42

字幕

このレッスンでは swift における― 型のチェックと ダウンキャストについて説明します まずこちらのプログラムをご覧ください このプログラムでは現在 UIkitを importして この UIkitフレームワークの中に含まれる この Slider を表す UISlider クラス Switch を表す UISwitch クラス そして日付の選択部品を表す UIDatePicker の部品を それぞれ1つずつ作成しています そしてそれぞれの部品を配列として items の中に格納しています このように UISlider UISwitch UIDatePicker というのはそれぞれ別々のクラスなのですが その関係がどうなっているか ということを見ていただきますと このように これは UIkitのフレームワークの リファレンスですが UIControl というクラスの中に それぞれこの Slider であるとか Switch であるとか DatePicker であるとかいった部品が サブクラスとして 制限されていますので この親クラスであるところの UIControl の配列として この items という配列は作成されます それでは次にこの items の配列の中から for in 文を使って 1つずつアイテムを 取り出していきたいと思います そして今回のレッスンではこの中に DatePicker があった時だけ その DatePicker に対して 現在の日付を代入するという そういう特別な処理をしてみたいと思います そのような処理をする時に まず一番にわかりやすい方法として まず型をチェックしなければいけないので これが本当に DatePicker なのか ということをチェックしなければいけないので is というキーワードを使います is を使うことによって もしも item が UIDatePicker ならば という判定を書くことができるので ここに判定が通った場合には 「UIDatePicker があります」 というふうに書いて UIDatePicker に対する処理を 現在は UIControl が1つずつ とりだされている状態になっていますので それが UIDatePicker である ということを明示するためには ダウンキャストということを してやる必要があります ダウンキャストというのは この階層的に現在― UIControl として使われているものが UIDatePicker であるということを明示する という作業です それを行うためには as! というキーワードが必要になります これを使って 今から picker を取り出しますよ ということで item as! UIdatePicker として 取り出して下さい このように書くことで DatePicker に対して アクセスすることができます picker.date = NSDate() こう書いて現在の日付を 格納することができました これが一番目の書き方です 但しもう少し簡単に書くことができまして その他にも全部で3つ やりかたがあるのですが 二つ目のやり方は as? という キーワードを使います as? はこのように let picker = item as? UIDatePicker as? の後ろに型を書いてやることによって この UIDatePicker に as ダウンキャストしてみよう というようにトライします トライした結果 もしも UIDatePicker でなかった場合 nil が代入されますし もしもダウンキャストが成功した時には それが UIDatePicker になっていますので picker として扱うことが できるようになります 後はこの picker が nil でないか ということをチェックして picker!.date = NSA と書いてやることで 日付を変更することができます picker は nil かもしれないし そうでないかもしれないということで オプショナルな値になっていますから オプショナルな値には「!」を 必ずつけてやる必要があります そして3番目のやり方としまして 「ダウンキャストと nilのチェックを同時に実行」 という方法があります こちらは この let picker = item as ? UIDatePicker と書いていたものを そのままこの if 文の中に入れ込んでしまう その形でプログラムを書くものです ですので if let picker = item as? UIDatePicker このように書いてやることで ダウンキャストと それが nil でなかった ということを 同時にチェックすることができますので この picker に対して date をこのようにセットすることができます この時 この picker はダウンキャストと同時に 既に nil チェックも終わっている ということでオプショナルな値では 無くなっていますので この picker の後ろに ! を付ける必要もなく 非常にシンプルなプログラムの書き方が できるようになっています このレッスンでは swift における 型のチェックと― ダウンキャストのついて説明しました

Swift基本講座

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

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

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

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

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