检查目标c中的值是整数还是双精度

时间:2010-02-20 04:48:45

标签: objective-c types double type-conversion

我有一个案例,我应该从数组中获取元素,我不知道该类型是双精度型还是整数。

[array objectAtIndex:2]

问题是我无法识别类型。如果我知道我会简单地执行的类型: [[item objectAtIndex:2] intValue]或 [[item objectAtIndex:2] doubleValue]

有没有办法检测到它?

BR, Gzim

2 个答案:

答案 0 :(得分:2)

请参阅-objCType method的文档。

基本上,它返回一个描述NSNumber中包含的类型的字符串。 Objective-C运行时文档提供了有关类型代码的更多信息。

然而,设计类型未知的设计是很奇怪的。我建议更好的解决方案 - 可能是一个有趣的问题 - 是避免应用程序设计中的模糊类型。

答案 1 :(得分:0)

NSString * type = [NSString stringWithUTF8String:[valueInQuestion objCType]];

这将等于" d"如果它是双倍的"我"如果它是一个整数。