【发布时间】:2012-05-24 13:50:50
【问题描述】:
我想在运行时获取实例的返回值类。事情是我有一个 SEL 类型 var 我存储了一个选择器。我有一个名为id _instance 的变量,它指向一个我知道它执行选择器的实例。在执行该方法之前我想知道我是否必须这样做:
NSObject* returnValue=[_instance performSelector:_selector withObject:params.params];
或:
[_instance performSelector:_selector withObject:params.params];
我看过post where someone explain the way to have that with objective-c runtime:
Method m = class_getClassMethod([_instance class], _selector);
char ret[256];
method_getReturnType(m, ret, 256);
NSLog(@"Return type: %s", ret);
但输出并不像 ret 是空的。
真的,知道它是 void 还是有返回类型就足够了,但我不知道在哪里搜索。我已经阅读了objective-c runtime reference,但我发现的唯一内容是method_getReturnType...。有什么想法吗?
【问题讨论】:
-
你真的不想将这种内省用于教育实验。沿着这条路走下去是疯狂和许多维护噩梦。
-
感谢广告!如果您对如何操作有更好的建议,我愿意接受;)
-
你想做什么? IE。为什么你需要知道这个?可能值得提出一个新问题。
标签: objective-c ios objective-c-runtime