2010-03-11 97 views
-1

我已经为按钮创建和按钮的动作下面的代码,我打电话buildUI方法终止应用程序由于未捕获的异常“NSInvalidArgumentException”,在iPhone编程

CGRect cgRct = CGRectMake(10 ,30 ,400, 320); //define size and position of view 
subMainView_G_obj = [[UIView alloc] initWithFrame:cgRct]; //initilize the view 
subMainView_G_obj.autoresizesSubviews = YES; 

//set view property ov controller to the newly created view 
// create Button's for modules in array (UIButtonTypeRoundedRect) 
UIButton_G_obj = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain]; 
UIButton_G_obj.frame = CGRectMake(100,30,100,50); 
[UIButton_G_obj setTitle:@"UI" forState:UIControlStateNormal]; 
UIButton_G_obj.backgroundColor = [UIColor clearColor]; 
[subMainView_G_obj addSubview:UIButton_G_obj]; 
//[UIButton_G_obj setEnabled:TRUE]; 
[UIButton_G_obj addTarget:subMainView_G_obj action:@selector(buildUIWorkArea) forControlEvents:UIControlEventTouchUpInside]; 

[mainView_G_obj addSubview:subMainView_G_obj]; 

} - (空) buildUIWorkArea { // UIView * uiWorkAreaView_G_obj; [uiWorkAreaView_G_obj clearsContextBeforeDrawing]; CGRect cgRct2 = CGRectMake(0.0,0.0,480,320); //定义视图的大小和位置 uiWorkAreaView_G_obj = [[UIView alloc] initWithFrame:cgRct2]; //初始化视图 uiWorkAreaView_G_obj.autoresizesSubviews = YES;

(UIButtonTypeRoundedRect)buttonUIObj = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain]; 
    buttonUIObj.frame = CGRectMake(100.30,100,50); 
    [buttonUIObj setTitle:BUTTON forState:UIControlStateNormal]; 
    buttonUIObj.backgroundColor = [UIColor clearColor]; 
    [uiWorkAreaView_G_obj addSubview:buttonUIObj]; 
    [buttonUIObj addTarget:uiWorkAreaView_G_obj action:@selector(showModuleView:) forControlEvents:UIControlEventTouchUpInside]; 


[mainView_G_obj clearsContextBeforeDrawing]; 
[mainView_G_obj addSubview:uiWorkAreaView_G_obj]; 

}

在按键UI的点击这是对的UIView uiWorkAreaView_G_obj,它把每个有子视图,我把这些按钮后,创建的UIView uiWorkAreaView_G_obj.and多了一个按钮BUTTON对UIView类型的常见mainview_G_obj进行子视图。 但它抛出一个异常.......

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIView buildUIWorkArea]:unrecognized selector sent to instance 0x57ca80' 

我不明白为什么它采取buildUIWorkArea的返回类型为UIView的,当我宣布它的返回类型为void。

plz help。

回答

0
[UIButton_G_obj addTarget:subMainView_G_obj action:@selector(buildUIWorkArea) 
     forControlEvents:UIControlEventTouchUpInside]; 

这条线是指,当用户触摸向上内部的按钮,下面的功能将被调用:

[subMainView_G_obj buildUIWorkArea]; 

由于subMainView_G_obj是一个普通的UIView,没有-buildUIWorkArea方法和由此错误。返回类型-buildUIWorkArea是无关紧要的。

你可能想送-buildUIWorkAreaself代替:

[UIButton_G_obj addTarget:self action:@selector(buildUIWorkArea) 
     forControlEvents:UIControlEventTouchUpInside]; 
+0

哎肯尼,谢谢让addTarget后回答..:自我,现在我不是刚开异常,但没有被执行的操作。它进入@selector(buildUIWorkArea),但不执行里面的动作。 – suse 2010-03-11 08:36:54

+0

你能弄清楚问题可能是什么? – suse 2010-03-11 08:37:27

+0

我只能在subMainView_G_obj中单击UI按钮一次,之后我不能再次点击配置按钮和两个UI按钮。 – suse 2010-03-11 08:39:45

相关问题