我在视图中有一组按钮,我根据他们的id将每组按钮添加到一个数组,问题是当我想要打印一个组的titleLabel时Xcode给出一个异常(终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因:' - [UIImageView titleLabel]:无法识别的选择器发送到实例0x6aa08c0' ),这是我的代码
-(NSMutableArray*)findButtonsSection:(UIButton *)buton{
[self initialzeSectionsarray];//initializes and allocates all the arrays below.
int tag=buton.tag;
for (UIButton* bton in self.view.subviews) {
switch (tag) {
case 0:
if (bton.tag==0)
{
//array: it's an array holds another arrays
[[array objectAtIndex:tag]addObject:bton];
for (UIButton* btton in sec_0) {
//it give me the exception when i tried to print out the buttons titles
NSLog(@"Buttons titles are%@",btton.titleLabel.text);
}
}
break;
case 1:
if (bton.tag==1) {
[[array objectAtIndex:tag]addObject:bton];
}
break;
case 2:
if (bton.tag==2) {
[[array objectAtIndex:tag]addObject:bton];
}
break;
case 3:
if (bton.tag==3) {
[[array objectAtIndex:tag]addObject:bton];
}
break;
case 4:
if (bton.tag==4) {
[[array objectAtIndex:tag]addObject:bton];
}
break;
case 5:
if(bton.tag==5){
[[array objectAtIndex:tag]addObject:bton];
}
break;
case 6:
if (bton.tag==6) {
[[array objectAtIndex:tag]addObject:bton];
}
break;
case 7:
if(bton.tag==7){
[[array objectAtIndex:tag]addObject:bton];
}
break;
case 8:
if(bton.tag==8){
[[array objectAtIndex:tag]addObject:bton];
}
break;
default:
break;
}
}
return [array objectAtIndex:tag];
}
答案 0 :(得分:1)
任何视图的默认标记为零。因此,如果self.view具有非按钮的视图,则代码将崩溃。尝试将标记更改为非零,并确保self.view.subviews中的视图是UIButton类的成员,如下所示:
if([button isMemberOfClass:[UIButton class]]){
//Do what you want to do
}