如何知道号码的类型存储在NSNumber
对象上?换句话说,有没有办法在创建NSNumber
时检查数字的条目类型?
我们假设我在NSNumber
对象上存储了一些随机数:
NSNumber *intNumber = [NSNumber numberWithInt:1];
我当然希望稍后使用intValue
方法检索它:
int theValue = [intNumber intValue];
但是,如果数字来自未知来源,API JSON响应或其他什么,我只是将其解析为NSDictionary
,结果是这样的:
{
"Some key" : 1,
"Some other key" : 74.1234
}
我们可以假设Some key
的值为int
,而Some other key
的值为double
。
有没有办法检查哪种类型适用于解析每个键的值?我可以使用的东西:
for (NSNumber *number in _arrayOfNumbers) {
if (/*number is integer*/) {
//do integer stuff
} else if (/*number is double*/) {
//do double stuff
}
}
我不知道我是否需要在真实情况下使用它,但我只是想知道是否有办法检查数字的“输入类型”。
提前致谢。
答案 0 :(得分:2)
使用CFNumberGetType
CFNumberGetType((CFNumberRef)number);
您可以将此值转换为枚举CFNumberType
的每个值的switch语句。