Objective-C 基本講座

関数ポインタを使う

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
関数を構造体のメンバに持ち、構造体の振る舞いを切り替える方法を学習します。
講師:
06:49

字幕

このレッスンでは 関数ポインターについて学習します まず最初にここにあげる出来事を 表現するための構造体を見てください 1 日の出来事としてゲームをした 本を買った 映画を見た という3 種類を 用意し出来事の種類とその出来事に関係した 金額をイベント構造体にまとめています 構造体にすることで例えば単に本を買った だけではなく1000 円の本を買ったという ようにより詳しい表現ができるようになります プログラムではこの構造体を配列で用意し 発生する出来事の候補としています 配列の要素を無作為に取り出し その日起こった出来事として使用します そのため無作為に取り出したイベント構造体は 出来事の種類別に専用の関数の呼び出すように if 文で分岐させています 今回はこの出来事の種類別の関数呼び出しを if 文の代わりに 関数ポインターで実現してみます 関数はサブルーチンを表現したもので マシンコードレベルでは メモリ上の1 区画でしかありません そのため引数の構成と 戻り値の型の情報を与えられるなら ポインター型変数として持つことが可能です そしてそれらの情報は すべて関数宣言に存在します 例えばbookSimulator なら 関数名の手前の戻り値の型と 後ろに続くカッコの内容です ここから関数名を取り省き代わりに アスタリスク 手前につけた変数名をおく ただしそのままだと優先順位の関係で手前の 戻り値の型にアスタリスクがつくものと 解釈されてしまうのでこれを防止するために カッコでくくります これが関数ポインター型変数の宣言方法です これで変数シュミレーターにはイベント構造体 を受け取り何も戻さない関数の番地なら 何でも代入できることになります この変数をイベント構造体の メンバーとして追加します それでは実際に 関数ポインターを使ってみましょう Xcode の画面にに移ります まずはif 分岐版を試します このように7 日間の出来事が表示されます 次に関数ポインターをメンバーに加え 配列の初期化を設定しましょう 一旦すべて ゲームシュミレーターを指定することにします そして無作為に取り出されたイベントの シュミレーターメンバーに イベントを渡して呼び出します if 文の方は削除してしまいましょう ランさせるとすべて すべてゲームの出来事となりました このようにもはやタイプに関係なく イベント構造体のシュミレーターメンバーに 設定された関数次第でふるまいが変わります それぞれをちゃんと 関係する関数に設定しなおします もう必要ないので イベントタイプも削除しましょう オプションキーを押しながら選択すると 四角形で選択できます ランさせるとif 文と 同じ動きとなります 今度は新しい出来事を追加してみましょう 構造体のシュミレーターメンバーに 新しい出来事用の関数を設定すれば それで新しい出来事となります すべてdrinkSimulator に 置き換えてランしてみます 全部ジュースを飲んだことになりました 構造体ひとつひとつが自分のふるまいを 決定していることに注目してください これはちょっとした オブジェクト試行プログラミングと言えます このレッスンでは 関数ポインターについて学習しました

Objective-C 基本講座

このコースはプログラミング初心者でもObjective-CによるiOSアプリ開発の体系的な理解が得られるように構成されています。プログラムの動作の原理、Objective-C言語の役割、そこで利用されるCocoa touchオブジェクトの役割、基本的なiOSアプリの作成方法などを学習します。ぜひこのコースをアプリ開発に踏み出すさいの第一歩としてください!

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

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

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

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