Objective-C 基本講座

共用体を使った出来事情報の拡張

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
共用体unionを使った情報の定義方法を学習します。
講師:
05:15

字幕

このレッスンでは共用体と その使いどころについて紹介します まず最初にここにあげる出来事を表現する ための構造体を見てください 1日の出来事として ジュース飲んだ 本を買ったという2種類を用意し出来事の 種類とその出来事に関係した情報を イベント構造体にまとめています 構造体にすることで例えば単に本を買ったでは なく1000 円のコミックを買ったという ようにより詳しい表現ができるようになります プログラムではこの構造体を配列で用意し 発生する出来事の候補としています 配列の要素を無作為に取り出し その日起こった出来事ととして使用します 構造体の配列を初期化する時は構造体単体を 初期化する時に使うブレースで囲んだ 各メンバーの値を配列の要素として指定します またブレースで囲んだ各構造体の各メンバーの 値は後ろ側のメンバーを 省略することもできます ただ少し気がかりなのは配列にするため 本を買った時にしか必要ない情報やジュースを 飲んだ時にしか必要ない情報も 構造体のメンバーに含める必要がある点です 配列は要素に同じ型の値しか持てないので やむをえません ただこの調子では出来事の種類を増やし 出来事別の情報を追加していくたびに 構造体がどんどん大きくなってしまいます 本には本の情報 ジュースにはジュースの情報 だけがあればいいのでイベント構造体に 加える追加情報は共用体にしましょう 共用体の定義はキーワードがユニオンに なる以外構造体と変わりません また変数宣言や各メンバーへの値を代入する 書き方も同じです しかしメモリーの使われ方では 大きな違いがあります 構造体の場合定義で並べたメンバーの 記憶区画がメモリー上に並び区画すべてを 合わせた大きさが構造体の区画となりますが 共用体の場合は定義で並べたメンバーが すべて同じ番地に位置しその内の1番大きな 区画が共用体の区画となります そのためメンバーbookName に値を 代入した後にメンバーbottles に値を 代入するとメンバーbookNameとしての 値は壊れてしまいます 値を記憶できるのは常に メンバーの内の1つだけということになります 今回のように本には本の情報 ジュースにはジュースの情報だけあれば いい場合はこの共用体を使うことで メモリーを無駄に増やすことなく さまざまな情報に対応できるようになります 共用体の飾花はブレース内で メンバー名の手前にドットをつけ そこに値を代入する形で行います 今回は構造体のメンバーなので ブレースの中に ブレースを入れ子にして初期化します それでは共用体を使った 実際のプログラムをお見せします Xcode の画面に切り替えます 共用体を定義し構造体に組み込み それぞれを初期化しています 後は7 日間のループの中で 毎回arc4random_uniform を使い無作為に配列から構造体を取り出し 対応する関数を呼んでいます 配列は3 要素なので arc4random_uniform に渡す引数は3 にしています これで0 から2 までのランダムな値が 戻されます 対応する関数では共用体からドットを使って 共用体のメンバーを取り出し利用しています うまく共用できています このレッスンでは共用体と その使いどころについて紹介しました

Objective-C 基本講座

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

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

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

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

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