我怎么能有一个可以返回任何类型的方法/函数呢?例如,有时类型需要是float,有时需要是NSString*,这样id就不能工作了,因为float不是id。我不反对在c或c++函数中这样做,如果这样更容易的话。
我需要动态返回类型的原因是因为我使用objc/ get来获取Ivar。
我希望some_type能够做任何事情:
- (some_type)getIvarWithName:(const char *)name in:(id)obj
{
Ivar ivar(class_getInstanceVariable(object_getClass(obj),name));
return (some_type)ivar;
}发布于 2014-04-18 22:49:31
Obj-C中没有这种多态性。如果你事先知道会返回什么,那么你当然可以使用to方法。当您使用NSNumber作为浮点值时,缩减id将会起作用。您甚至可以引入一个包含数字或字符串的响应对象,并为以后的处理提供(bool) isNumber和(bool) isString方法。
但你到底想做什么?你在什么背景下使用它,你真正想要实现的是什么。在我看来,似乎有更好的解决方案。
https://stackoverflow.com/questions/23156351
复制相似问题