Objective c 如何检测NSDictionary项是否为整数?
我有一个NSDictionary对象,它有两个项,第一个是NSString,第二个是整数。当我循环到字典项中时,我想检测它们中的哪些是整数 最好的方法是什么 目前的字典是:Objective c 如何检测NSDictionary项是否为整数?,objective-c,nsdictionary,Objective C,Nsdictionary,我有一个NSDictionary对象,它有两个项,第一个是NSString,第二个是整数。当我循环到字典项中时,我想检测它们中的哪些是整数 最好的方法是什么 目前的字典是: [[NSDictionary alloc] initWithObjectsAndKeys:@"San", @"name", @"123", @"id", nil] 您放在字典中的项决不是整数,而是只包含数字的NSString。为什么不直接使用NSNumber对象并按其应该的方式使用它呢 [[NSDictionary all
[[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查询,例如,当值是整数时,我不能将值放在“'”之间,但如果它是字符串,我需要使用“'”。