如何在返回原始类型值时获取respondsToSelector方法的返回类型

时间:2011-09-16 09:27:14

标签: objective-c ios selector

我知道我可以在返回对象时使用object_getClassName获取respondsToSelector方法的返回类型。但是当它返回像NSInteger这样的基本类型时它不起作用。 当我使用错误的SEL初始化NSString并返回NSInteger.T_T时,我的应用程序崩溃了 我现在唯一能做的就是当我需要返回基本类型时,make方法返回一个NSNumber值。我必须这样做吗?有什么简单的方法可以在返回原始类型时获取SEL的返回类型吗?

1 个答案:

答案 0 :(得分:0)

使用NSNumber有什么问题?如果你知道数字的“类型”是什么(即整数,浮点数),你可以调用-[NSNumber integerValue]-[NSNumber floatValue]来获得你需要的原语。

如果您不知道将返回什么原始类型,则可以使用objCType实例的NSNumber属性来获取包含{{1}的C样式字符串指令。这些表明Objective-C数据是如何编码的。有关详细信息,请参阅Type Encoding

根据您获取的类型编码C字符串,您可以根据@encode()实例中实际存储的任何基本类型进行响应,并使用上述方法检索正确的值。