Objective-C 基本講座

スコープを調整する

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
グロバール変数の注意点や、staticキーワードによる解決法を学習します。
講師:
07:30

字幕

このレッスンでは変数、関数の見える 範囲について学習します まずこのサンプルは 7 日間の出来事シュミレーションです ループ中ジュースを飲む drink 友達を遊びに誘う invite 友達が遊びに来る come の3 関数を 無条件に呼び出していますが呼び出された 関数側で変化をつけています 例えばinvite 関数では友達が3回に 1 度誘いを断るようにしています この場合何回目の誘いかを記憶する 必要があるのですがスタック変数だと 関数から戻った時点で片付けられれるので グローバルにする必要がありました drink 関数も2 回に1 度は 売り切れで買えなかったとしています 同じようにg カウントを用意して 使っていますが特にエラーにはなりません しかしいざランさせてみると リンクでエラーが生じます エラーマークをクリックして 詳細を確認してみましょう エラーの内容は変数が複数あるというものです これは2 つのファイルで宣言した グローバル変数が リンクの時点で衝突したせいです 当たり前ですがグローバル変数は 名前の重複が許されません 重ならないように名前を変更するのでも いいのですが もっといい方法があります それは変数を関数の中に入れてしまい スタティックキーワードをつける方法です このように型の前にスタティックキーワード をつけることでその変数をスタック上ではなく グローバル変数用のメモリー区画に確保させた ままその関数からしか見えないようにできます この時点でリンクも通るのですがdrink 側もちゃんとスタティックをつけて 関数内に入れましょう こうしてこまめに関数内からしか見えないよう にしておくといざ本当にgカウントを グローバル変数で 使わなければならなくなった時に困りません 本当はグローバル変数の識別用につけている 変数目頭のg も外すべきですが ここでは省略します こうやってすべてのグローバル変数を関数内に 収めれば変数名の衝突を気にしなくてよいの ですがそうも行かない場合があります 例えば友達が誘うといけないと言っておき ながら直後にcome で 遊びに来たのでは変です この場合come 関数もinvite内の g カウントの値に伝導させる必要があり g カウントを関数外に出さざるを得ません これだとまたグローバル変数名の 衝突の心配が出てきます 消極的な解決策としてはめったに使わない 名前にするというものがありますが もう少し適切な方法として ここでもスタティックをつける方法があります この場合ファイル内の関数からは見えますが ファイル外からは見えないスコープとなります スコープとは見える範囲のことです 例えばメイン関数で使っている法文のデイ変数 はループ外からは触れません デイは法文内がスコープということです こうやって ブレースのペアを使って無理やり スコープを作ることで 外から触れないようにすることもできます スタティックをうまく使いできるなら関数内 だめならファイル内それでもだめなら グローバルというように変数はできるだけ狭い スコープで使うよう心掛けるといいでしょう また関数にもスタティックキーワードを つけることができます スタティックがついた関数は ファイル内限定のスコープとなり同じように 関数名の衝突を防ぐのに役立ちます オープニング関数はメイン関数から しか呼ばれないのでスタティックにしましょう こうすると外部のファイルからは例え関数宣言 しても使えなくなります 外部で利用させない関数には積極的に スタティックキーワードを つけるようにしてください そうすることで名前の衝突を避けられる上に その関数がファイル内のみでしか 使われないという 情報を読んでいる人に伝えることができます ここでは変数 関数の見える範囲について 学習しました

Objective-C 基本講座

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

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

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

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

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