【发布时间】:2014-06-03 02:16:38
【问题描述】:
我怎样才能有一个可以返回任何类型的方法/函数?例如,有时类型需要为float,有时需要为NSString*,因此id 将不起作用,因为float 不是id。如果它更容易,我不反对在 c 或 c++ 函数中执行它。
我需要动态返回类型的原因是因为我使用 objc/runtime 来获取 Ivar。
我希望 some_type 能够做任何事情:
- (some_type)getIvarWithName:(const char *)name in:(id)obj
{
Ivar ivar(class_getInstanceVariable(object_getClass(obj),name));
return (some_type)ivar;
}
【问题讨论】:
-
你为什么要问C? C 不支持
id或NSString *。如果你想要任何 C 类型,你可能想要返回void *。 -
你从哪里得到这些值?如果您有 iVar,请考虑使用属性,然后如果您想动态访问它们,请使用
valueForKey:?
标签: objective-c c function methods return-type