131

[NSNumber numberWithInt:42]orを使用@(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"];
4

5 に答える 5

203

ドキュメントをご覧ください。intValue次の方法を使用します。

NSNumber *number = [dict objectForKey:@"integer"];
int intValue = [number intValue];
于 2010-08-24T11:28:38.023 に答える
62

NSInteger可能な場合は、データ型に固執する必要があります。したがって、次のような番号を作成します。

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

デコードは次のintegerValue方法で機能します。

NSInteger value = [number integerValue];
于 2010-08-24T11:29:52.007 に答える
4

NSNumber メソッドを使用するintValue

ここにAppleのリファレンスドキュメントがあります

于 2010-08-24T11:27:22.660 に答える
1

より冗長なアプローチ:

int number = [dict[@"integer"] intValue];
于 2015-07-15T08:27:01.247 に答える