我有一个带有2个项目的NSDictionary对象,第一个是NSString,第二个是Integer。当我循环进入字典项目时,我想检测它们是什么样的整数。
最好的方法是什么?
当前字典是:
[[NSDictionary alloc] initWithObjectsAndKeys:@"San", @"name", @"123", @"id", nil]
答案 0 :(得分:3)
您放入字典中的项目绝不是整数,它是仅包含数字的NSString。为什么不直接使用NSNumber对象并以它应该的方式使用它?
[[NSDictionary alloc] initWithObjectsAndKeys:@"San", @"name", @123, @"id", nil]
这使用NSNumber的文字。
答案 1 :(得分: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
。