-1

我有一个包含 2 个项目的 NSDictionary 对象,第一个是 NSString,第二个是整数。当我循环进入字典项目时,我想检测它们中的哪些是整数。

最好的方法是什么?

目前的词典是:

[[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使用文字创建的,for 也是如此,它会自动在字典中@123插入一个123 的值。NSNumber

于 2013-07-05T18:33:34.030 回答