web-dev-qa-db-ja.com

NSNumberをObjective-Cでintに変換する方法

Int値をディクショナリに入れる前に、int値を[NSNumber numberWithInt:2]に設定しました。今、ディクショナリコンテンツを取得しようとすると、intフォーマットに戻したいと思います。

これが私のコードです。

NSMutabelDictionary *dict = [[NSMutableDictionary alloc]init];
int intValue = 300;

[dict setObject:[NSNumber numberWithInt:intValue] forKey:@"integer"];

取得しています.........

int number = [dict ObjectForKey:@"integer"];

..キャストが必要であると言って例外をスローします..このようにすると..

int number = (int)[dict ObjectForKey:@"integer"];

それでも機能しない...

この問題を解決するには?/

提案してください..

118
suse

ドキュメント をご覧ください。 intValueメソッドを使用します。

int number = [[dict objectForKey:@"integer"] intValue];
190
Felix Kling

可能であれば、NSIntegerデータ型に固執する必要があります。そのため、次のような番号を作成します。

NSInteger myValue = 1;
NSNumber *number = [NSNumber numberWithInteger: myValue];

デコードはintegerValueメソッドで動作します:

NSInteger value = [number integerValue];
58
Max Seelemann

NSNumberメソッドintValueを使用します

Appleリファレンスドキュメント

3
rano

より冗長なアプローチ:

int number =  [dict[@"integer"] intValue];
0
baskInEminence