1. ホーム
  2. objective-c

[解決済み] Objective-CでNSNumberをintに変換する。

2022-02-19 12:24:44

質問

私が使っているのは [NSNumber numberWithInt:42] または @(42) を使用すると、NSDictionary に追加する前に int を NSNumber に変換することができます。

int intValue = 42;
NSNumber *numberValue = [NSNumber numberWithInt:intValue];
NSDictionary *dict = @{ @"integer" : numberValue };

NSDictionaryから値を取得する際、NSNumberからintに戻すにはどうすればよいですか。

NSNumber *number = dict[@"integer"];
int *intNumber = // ...?

この方法でやると、キャスティングが必要だと言って例外を投げます。

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

解決方法は?

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

NSNumber *number = [dict objectForKey:@"integer"];
int intValue = [number intValue];