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"];
それでも機能しない...
この問題を解決するには?/
提案してください..
ドキュメント をご覧ください。 intValue
メソッドを使用します。
int number = [[dict objectForKey:@"integer"] intValue];
可能であれば、NSInteger
データ型に固執する必要があります。そのため、次のような番号を作成します。
NSInteger myValue = 1;
NSNumber *number = [NSNumber numberWithInteger: myValue];
デコードはintegerValue
メソッドで動作します:
NSInteger value = [number integerValue];
NSNumberメソッドintValue
を使用します
より冗長なアプローチ:
int number = [dict[@"integer"] intValue];