Objective c 如何检测NSDictionary项是否为整数?

Objective c 如何检测NSDictionary项是否为整数?,objective-c,nsdictionary,Objective C,Nsdictionary,我有一个NSDictionary对象,它有两个项,第一个是NSString,第二个是整数。当我循环到字典项中时,我想检测它们中的哪些是整数 最好的方法是什么 目前的字典是: [[NSDictionary alloc] initWithObjectsAndKeys:@"San", @"name", @"123", @"id", nil] 您放在字典中的项决不是整数,而是只包含数字的NSString。为什么不直接使用NSNumber对象并按其应该的方式使用它呢 [[NSDictionary all

我有一个NSDictionary对象,它有两个项,第一个是NSString,第二个是整数。当我循环到字典项中时,我想检测它们中的哪些是整数

最好的方法是什么

目前的字典是:

[[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

好的,但是如果当前值是整数,我如何检测到循环中?@goddaver-iskindofclass您在下面得到了一些答案,但这种方法看起来并不“正确”。为什么要检测整数?要以正确的方式装载sqlite查询,例如,当值是整数时,我不能将值放在“'”之间,但如果它是字符串,我需要使用“'”。