sonoshouのまじめなブログ

情報系大学生からのウェブ見習い人生の記録

iOSメモ6 〜Objective-C〜

学習の記録を自分用にメモしようかと。
従って、この記事だけを読んでも何もわかりません……。

C言語と異なり混乱しそうなところをピックアップ。
変数や制御分、コメントの使い方はC言語とほぼ変わりません。

文字データ

文字データを扱うときは、「NSString」を使う。
文字データそのものは、前後で「@"」と「"」で囲む。
@"文字"

文字データを使う

1.
NSString *文字変数 = [[NSString alloc] initWithString:@"文字"];
//文字を使う
[release 文字変数]

2.
NSString *文字変数 = [[[NSString alloc] initWithString:@"文字"] autorelease]
//文字を使う

3.
NSString *文字変数 = [NSString stringWithString:@"文字"];
//文字を使う

初心者のうちは3.を使うと良い。(簡単だから)
3.はこの書き方で「alloc」と「init」と「autorelease」をやってくれます。
本当は1.のようにreleaseを明示的に行うべきなのだけれど……。


配列

配列を作るには、NSArrayの「arrayWithObjects:」を使います。
後ろにカンマ区切りでデータを並べていき、一番最後には「nil」を指定します。
NSArray *配列変数 = [NSArray arrayWIthObjects:値, 値, 値, ... ,nil];

配列の個数

配列変数.count で取得可能です。

番号で指定して読み出す

[配列変数 objectAtIndex:番号] で呼び出せます。


辞書データ

たくさんのデータをキーワードで扱うときは、辞書データ(NSDictionary)を使います。
他の言語では連想配列やハッシュマップと呼ばれるものに近いです。

辞書データを作る

辞書データを作るには、NSDictionaryの「dictionaryWIthObjectsAndKeys:」を使います。
後ろに、「値」と「キー」をセットで、カンマ区切りデータを並べていき、一番最後に「nil」を指定します。
NSDictionary *辞書データ = [NSDictionary dictionaryWithObjectsAndKeys: 値, キー, 値, キー, ... , nil];

全キーワード

辞書データの全キーワードは、「allKeys」で調べることができます。
辞書データ.allKeys

キーワードで指定して読み出す

辞書データの中から要素を読み出すには、「objectForKey:」で、キーを指定して読み出します。
[辞書データ objectForKeys:キー]


オブジェクト

オブジェクトを使うときは、まずオブジェクトを作り、できたオブジェクトのプロパティにアクセスしたり、メソッドを実行したりして使います。

オブジェクトを作る

オブジェクトは、ポインター変数を使って作ります。まずメモリ上に領域を確保してから、オブジェクトの初期化命令を実行して初期化します。
初期化命令は通常「init」を用いられますが、オブジェクトによって様々な種類がある場合があります。
クラス名 *オブジェクト名 = [[クラス名 alloc] 初期化命令];

オブジェクトを解放する

メモリ上に領域を確保して作ったものなので、使わなくなったら自分で解放します。
[オブジェクト名 release];

プロパティにアクセスする

オブジェクトのプロパティにアクセスするには、オブジェクト名に「.(dot)」をつけてその後ろにプロパティ名を指定します。
「プロパティの値を取得するとき」は、プロパティの値を調べます。
変数 = オブジェクト名.プロパティ;
オブジェクト名.プロパティ = 値;

メソッドを実行する

メソッドを実行するには、実行するメソッドを「[」と「]」で囲んで指定します。
引数なし
[オブジェクト名 メソッド];

引数1つ
[オブジェクト名 メソッド:引数];

引数2つ
[オブジェクト名 メソッド:引数1 ラベル:引数2];