首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可变回报类型Objective-C或C

可变回报类型Objective-C或C
EN

Stack Overflow用户
提问于 2014-04-18 22:40:23
回答 5查看 142关注 0票数 0

我怎么能有一个可以返回任何类型的方法/函数呢?例如,有时类型需要是float,有时需要是NSString*,这样id就不能工作了,因为float不是id。我不反对在c或c++函数中这样做,如果这样更容易的话。

我需要动态返回类型的原因是因为我使用objc/ get来获取Ivar。

我希望some_type能够做任何事情:

代码语言:javascript
运行
复制
- (some_type)getIvarWithName:(const char *)name in:(id)obj
{
Ivar ivar(class_getInstanceVariable(object_getClass(obj),name));
return (some_type)ivar;
}
EN

Stack Overflow用户

发布于 2014-04-18 22:49:31

Obj-C中没有这种多态性。如果你事先知道会返回什么,那么你当然可以使用to方法。当您使用NSNumber作为浮点值时,缩减id将会起作用。您甚至可以引入一个包含数字或字符串的响应对象,并为以后的处理提供(bool) isNumber(bool) isString方法。

但你到底想做什么?你在什么背景下使用它,你真正想要实现的是什么。在我看来,似乎有更好的解决方案。

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23156351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档