我知道我可以在返回对象时使用object_getClassName获取respondsToSelector方法的返回类型。但是当它返回像NSInteger这样的基本类型时它不起作用。 当我使用错误的SEL初始化NSString并返回NSInteger.T_T时,我的应用程序崩溃了 我现在唯一能做的就是当我需要返回基本类型时,make方法返回一个NSNumber值。我必须这样做吗?有什么简单的方法可以在返回原始类型时获取SEL的返回类型吗?
答案 0 :(得分:0)
使用NSNumber
有什么问题?如果你知道数字的“类型”是什么(即整数,浮点数),你可以调用-[NSNumber integerValue]
或-[NSNumber floatValue]
来获得你需要的原语。
如果您不知道将返回什么原始类型,则可以使用objCType
实例的NSNumber
属性来获取包含{{1}的C样式字符串指令。这些表明Objective-C数据是如何编码的。有关详细信息,请参阅Type Encoding。
根据您获取的类型编码C字符串,您可以根据@encode()
实例中实际存储的任何基本类型进行响应,并使用上述方法检索正确的值。