
Objective-C 入門
iPhone(アイフォン)アプリはObjective-Cというプログラミング言語で開発されます。
その基礎知識を、プログラミング未経験者を対象に解説していきます。
Objective-Cについて
- iPhoneアプリの開発ではObjective-Cを使用します。Objective-CはC言語が基本になってるオブジェクト指向言語です。
コメントについて
- コメントはプログラムコード中に記述してもコンパイラには無視される部分です。
「何をしているコードなのか」「このコードを呼び出す前に必要なこと」をコメントとして残すことで保守がしやすくなります。 - Objective-Cのコメントの記述方法には2種類あります。
・「//」と書いた部分から行末までがコメントとなる(本書ではこの方式でコメントを記述している)
・「/*」から「*/」までがコメントとなる
- コメントはプログラムコード中に記述してもコンパイラには無視される部分です。
リテラル
- プログラムコード中に、直接記述できる文字や文字列、数値などをリテラルと呼びます。
Objective-Cのリテラルには、次の種類があります。
・数値
数値は10進数、16進数、8進数を使用することができます。また整数だけではなく、実数(浮動小数点数)も使用可能です。
普通に数値を記述すると、10進数として扱われます。「0x」で始まると16進数、「0」で始まると8進数として扱われます。
また、数値の後ろにつけるサフィックスによって何の型として扱われるかが変わります。
注意しなければいけない型は「long long」型と「unsigned long long」型です。
これらの型でしか扱えないような 巨大な数値をサフィックスを付けずに記述すると、数値が丸められて正しい動作を
しないことがあります。なお、サフィックスを省略することも可能です。
[サフィックス]
f:「float」型として扱われる
u:「符号なし整数として扱われる
ul:「unsigned long」として扱われる
l:「long」型として扱われる
ll:「long long」型として扱われる
ull:「unsigned long long」型として扱われる
・論理値(BOOL型)
論理値は「真」か「偽」を表します。値は「Yes」か「No」です。「Yes」は「1」と等価、「No」は「0」と等価です。
・文字
文字は「'」記号で囲んで表します。
・文字列
文字列は「"」記号で囲み、先頭の「"」の前に「@」を付けて記述します。文字列は「NSString」クラスのオブジェクトとして
扱われます。「@」を記述しなかった場合はC言語のNULL終端分字列として扱われます。
- プログラムコード中に、直接記述できる文字や文字列、数値などをリテラルと呼びます。
変数について
- 変数は、値を入れておくことが出来る場所です。変数には「型」があり、その「型」にあわせた値を入れることができます。
変数の宣言は、先に「型」を指定し、その後ろに変数名を指定します。「=」演算子で初期値を指定することもできます。
・代入
変数への値の代入は「=」演算子を使用します。
・キャスト
変数への値の代入や変数の使用時に別の型に変換するにはC言語のキャストを使用します。
キャストで注意が必要な点は、C言語のキャストと同様に、キャストで行われるのは変数やリテラルのコンパイラが
認識する型の変更です。そのため、変数やリテラル自体は何も変換されず、数値を文字列としてキャストしても
文字列に変換されることはありません。
・有効範囲
変数が宣言された場所によって、使用できる範囲が決まります。使用できる範囲は、
変数が宣言されたスコープ内です。スコープは「{」で始まり、「}」で閉じられている範囲です。
- 変数は、値を入れておくことが出来る場所です。変数には「型」があり、その「型」にあわせた値を入れることができます。
定数について
- Objective-Cでは、定数は「enum」「const」「#define」を使用して定義します。
iPhoneアプリの開発では、文字列定数を多く使用します。文字列定数は「NSString」クラスの文字列です。
文字列定数はソースファイルで定義し、他のファイルから参照できるようにヘッダファイルで「extern」付きで宣言します。
- Objective-Cでは、定数は「enum」「const」「#define」を使用して定義します。
演算子について
- 算術演算子
算術演算子は、一般的な記法で記述します。
一般的な算術演算と同様に、「乗算」と「除算」は、「加算」と「減算」よりも優先されます。
[演算子]
*:乗算、 /:除算、 +:加算、 -:減算、 %:剰余
- インクリメントとデクリメント
インクリメントは変数の値を1増加し、デクリメントは1減らします。
[演算子]
++ :インクリメント 「i++」は「i=i+1」と同じ
++ :インクリメント 「i++」は「i=i+1」と同じ
- ビット演算子
ビット単位の演算を行います。
[演算子]
|:ORを計算、 &:ANDを計算、 〜:NOTを計算、
>>:右ビットシフトを計算、 <<:左ビットシフトを計算 - 省略形
演算子の中には省略形が使える演算子があり、次のような省略形があります。
[省略形:省略される前の形]
a + = b:a = a + b、 a - = b:a = a - b、 a * = b:a = a * b、 a / = b:a = a / b、
a % = b:a = a % b、 a & = b:a = a & b
- 算術演算子