2012-06-26 123 views
0

的我有,我希望返回不同类型是否有可能返回不同类型的对象

-(UIButton *)returnObject1 ; 
{ 

    //dosomething 

    return aUIButton; 

} 

-(UIView *)returnObject2 ; 
{ 

    //dosomething 

    return aUIView; 
} 

我希望这两个功能合并成一个,并返回不同的NSObject(的UIButton,UIView的)功能 是有可能吗?

欢迎任何评论

+0

其实是的,你的意思是返回2个对象或返回对象取决于你接受的类型? – Pochi

回答

0

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

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

    return aUIView; 
} 

但是... UIButtonUIView一个子类,这意味着你可以这样做,而不是:

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

    return aUIView; 
} 

需要注意的是,在Objective-C,返回类型在执行代码时完全不相关。整个目的是通知编译器你的代码需要什么,以便它可以避免崩溃。所以,尽可能指定返回类型是一个好主意,但不是必需的。

0

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

编辑:我理解的是,OP想返回两个对象。这个答案只适用于这种情况。

0

这里有你想要的一个例子:

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