2 つの項目を持つ NSDictionary オブジェクトがあります。最初の項目は NSString で、2 番目の項目は整数です。ディクショナリ項目にループするとき、それらが整数であるものを検出したいと思います。
それを行う最良の方法は何ですか?
現在の辞書は次のとおりです。
[[NSDictionary alloc] initWithObjectsAndKeys:@"San", @"name", @"123", @"id", nil]
2 つの項目を持つ NSDictionary オブジェクトがあります。最初の項目は NSString で、2 番目の項目は整数です。ディクショナリ項目にループするとき、それらが整数であるものを検出したいと思います。
それを行う最良の方法は何ですか?
現在の辞書は次のとおりです。
[[NSDictionary alloc] initWithObjectsAndKeys:@"San", @"name", @"123", @"id", nil]
ディクショナリに入れている項目は決して整数ではなく、数値のみを含む NSString です。NSNumber オブジェクトを使用して、本来あるべき方法で使用しないのはなぜですか?
[[NSDictionary alloc] initWithObjectsAndKeys:@"San", @"name", @123, @"id", nil]
これは、NSNumber のリテラルを使用します。
isKindOfClass:
オブジェクトが特定のクラスのものであるかどうかを確認enumerateKeysAndObjectsUsingBlock:
し、辞書に含まれるすべてのオブジェクトを分析するために使用できます。
例えば:
NSDictionary *dictionary = @{@"name": @"San", @"id": @123};
[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
if ([obj isKindOfClass:[NSNumber class]])
NSLog(@"%@: %@ is a number", key, obj);
else
NSLog(@"%@: %@ is NOT a number", key, obj);
}];
最初の行は、NSDictionary
リテラルを使用した作成です。これは 123 の値を辞書に@123
自動的に挿入します。NSNumber