Objective c 目标c返回式开关
我想使用选择器的返回类型来确定它在我的代码中的使用方式。在objective c中是否有区分返回类型的方法?我将给出一个示例Objective c 目标c返回式开关,objective-c,types,selector,Objective C,Types,Selector,我想使用选择器的返回类型来确定它在我的代码中的使用方式。在objective c中是否有区分返回类型的方法?我将给出一个示例 SEL selectors[]= {@selector(method1), ... //each method returns a different type @selector(methodn);} for (SEL sel in selectors) { switch [[self performSelector:sel]/*idk som
SEL selectors[]=
{@selector(method1),
... //each method returns a different type
@selector(methodn);}
for (SEL sel in selectors)
{
switch [[self performSelector:sel]/*idk something here maybe?*/]
{
case int:
//do some stuff
...
case NSString *:
//do some other stuff
}
}
提前感谢您,我在这里找不到任何关于目标c的内容,您可以通过objc运行时中的
方法\u copyReturnType
来实现
但是,返回的objc类型和参数都是相同的(上次我检查过),因此运行时不会返回描述为“NSArray”的类型——它只是objc类型的标识符。尽管如此,对于您的
int
或NSString
案例来说,这种详细程度已经足够了,您可以使用NSObject实例的类或Iskindof类:
(等等)实例方法来确定其类型,一旦您有了句柄。您可以使用-methodSignatureForSelector:
获取方法的NSMethodSignature
。然后您可以使用-methodReturnType
从NSMethodSignature
对象获取返回类型。如果没有必要,请不要干扰运行时。严格来说,选择器没有返回类型。另一方面,方法则不起作用。