2011-08-10 16 views
0

我对Objective C非常陌生,并且试图创建一个只用一行代码初始化对象(按钮对象更加精确)的方法......我的方法声明......Objective C - 初始化对象时通过方法参数传递对象名的问题

- (void)buttonDeclaration: (UIButton *)mButton :(int)xloc :(int)yloc :(int)bWidth :(int)bHeight 
         : (NSString *)sImage :(UIViewController *)mView :(SEL)mSelector 
{ 
    mButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [self buttonSetxy:mButton :xloc :yloc :bWidth :bHeight]; 
    [mButton setBackgroundImage:[UIImage imageNamed:sImage] forState:UIControlStateNormal]; 

    [mView.view addSubview:mButton]; 
} 

我的方法调用...

[...buttonDeclaration:newButton :40 :65 :80 :65...] 

,但是当我尝试添加

[newButton setHidden:FALSE]; 

我调用该方法后什么都不做。我不确定什么是适当的术语,但对象名称应该是newButton而不是mButton。这是否有意义,我该如何做到这一点?

+0

buttonSetxy方法做什么???你是否正确设置了框架? – mayuur

+0

buttonSetxy仅仅是改变我的按钮坐标的另一种自定义方法。同样,在我的主视图控制器中进行单线编码。 – leejhall

+0

可以发布buttonSetxy的代码吗? Cz如果你不会设置btn的框架,那么它会添加wudnt。 – mayuur

回答

0

实际上,在c中声明的方法是不同的。

当你使用多个参数声明方法时,它应该是这样的。

  • (无效)的MyMethod:(INT)firstNum secondArgument:(INT)secondNum

所以UR方法将被宣布像

  • (无效)buttonDeclaration (UIButton *)mButton xPosition:(int)xloc yPosition:(int)yloc Width:(int)bWidth height:(int)bHeight imageName:(NSString *)sImage myView:(UIViewController *)m视图选择:(SEL)mSelector

现在,您将通过

[自buttonDeclaration调用这个方法:myBtn的xPosition:5 yPosition:10宽度:5高度:10等。 ......]

,如果你想隐藏你的按钮,只写

myBtn.hid den = YES;

+0

这只是改变名称,但不会有任何其他影响。虽然我同意使用未命名的参数是一件坏事。 – DarkDust

+0

是的,但它看起来太混乱了...... – mayuur