-1

2 つの項目を持つ NSDictionary オブジェクトがあります。最初の項目は NSString で、2 番目の項目は整数です。ディクショナリ項目にループするとき、それらが整数であるものを検出したいと思います。

それを行う最良の方法は何ですか?

現在の辞書は次のとおりです。

[[NSDictionary alloc] initWithObjectsAndKeys:@"San", @"name", @"123", @"id", nil]
4

2 に答える 2

3

ディクショナリに入れている項目は決して整数ではなく、数値のみを含む NSString です。NSNumber オブジェクトを使用して、本来あるべき方法で使用しないのはなぜですか?

[[NSDictionary alloc] initWithObjectsAndKeys:@"San", @"name", @123, @"id", nil]

これは、NSNumber のリテラルを使用します。

于 2013-07-05T18:07:30.183 に答える
0

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

于 2013-07-05T18:33:34.030 に答える