是否有可能返回不同类型的对象

时间:2012-06-26 03:06:11

标签: iphone

我有一个函数,我希望返回不同的类型

-(UIButton *)returnObject1 ;
{

    //dosomething

    return aUIButton;

}

-(UIView *)returnObject2 ;
{

    //dosomething

    return aUIView;
}

我希望将两个函数合并为一个并返回不同的NSObject(UIButton,UIView) 有可能吗?

欢迎任何评论

3 个答案:

答案 0 :(得分:0)

你可以简单地创建自己的自定义对象,其中包含两个并返回一个

编辑:我知道OP想要返回2个对象。这个答案只适用于那种情况。

答案 1 :(得分:0)

以下是您想要的示例:

-(id)returnObject:(int)type
{
    if (type == 1)
        return aUIButton;
    else if (type == 2)
        return aUIView;
    return nil;
}

答案 2 :(得分:0)

只是不要声明一个返回类型。改为将其改为:

- (id)returnObject
{
  if (something) {
    return aUIButton;
  }

  return aUIView;
}

但是...... UIButtonUIView的子类,这意味着你可以这样做:

- (UIView *)returnObject
{
  if (something) {
    return aUIButton;
  }

  return aUIView;
}

请注意,在objective-c中,方法的返回类型在执行代码时完全无关紧要。完整的目的是通知编译器您的代码期望什么,以便它可以避免崩溃。因此,在可能的情况下指定返回类型是个好主意,但不是必需的。