0

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

-(UIButton *)returnObject1 ;
{

    //dosomething

    return aUIButton;

}

-(UIView *)returnObject2 ;
{

    //dosomething

    return aUIView;
}

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

欢迎任何评论

4

3 回答 3

0

您可以简单地创建自己的包含两者的自定义对象并返回该对象

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

于 2012-06-26T03:11:44.977 回答
0

这是您想要的示例:

-(id)returnObject:(int)type
{
    if (type == 1)
        return aUIButton;
    else if (type == 2)
        return aUIView;
    return nil;
}
于 2012-06-26T03:12:05.943 回答
0

只是不要声明返回类型。改为:

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

  return aUIView;
}

但是...UIButton是 的子类UIView,这意味着您可以这样做:

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

  return aUIView;
}

请注意,在 Objective-c 中,方法的返回类型在代码执行时完全不相关。整个目的是告诉编译器你的代码期望什么,这样它就可以避免崩溃。因此,在可能的情况下指定返回类型是一个好主意,但不是必需的。

于 2012-06-26T03:13:26.880 回答