Objective c返回类型开关

Jor*_*ock 3 types objective-c selector

我想使用选择器的返回类型来确定它在我的代码中的使用方式是否有一种方法来区分目标c中的返回类型我将给你一个例子.

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
        }
     }
Run Code Online (Sandbox Code Playgroud)

在此先感谢我在这个谈论目标c的任何地方找不到任何东西

jus*_*tin 5

你可以method_copyReturnType在objc运行时做到这一点.

但是,返回和参数的objc类型都是相同的(最后我检查过),这样运行时不会返回带有描述"NSArray"的类型 - 它只是objc类型的标识符.尽管如此,详细程度是你足够的描述intNSString情况,您可以使用一个NSObject实例的classisKindOfClass:(等)的实例方法来确定其类型,一旦你有它的句柄.