頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


Objective-Cの配列で数値を扱う時にはまった

配列の中身が整数の場合、その扱いではまっていたのでメモ。

まず、Objective-Cの場合、配列の中身はオブジェクトでないと扱えない、ということ。
これはNSNumberというラッパークラスを使えばいい、というのはなんとなく(おい、えらく弱気だな)OK。

整数をNSNumber使ってオブジェクト化して、配列に入れていく場合はこんな感じ。
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:[NSNumber numberWithInt:2]];
[array addObject:[NSNumber numberWithInt:5]];
[array addObject:[NSNumber numberWithInt:9]];
ここまではOK。

実際に配列の中身を取り出して数値として扱う場合にはまりました。
たいして考えずにNSIntergerでキャストしたつもりが、、、これじゃだめなんですね。
NSInteger value;
//value = (NSInteger)[array objectAtIndex:2];//間違い!
value = [[array objectAtIndex:2] intValue];//こっちが正解
上の方だとわけのわかんない数字が表示されます。
うぬぅ~、配列ごときで手こずるとは、、、

<< retainCountの謎  TopPage  ローカル変数だとメモリ管理しなくてもOK? >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/405-d2e798ee




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad