从NSMutableArray访问一组按钮的titleLabel时出现问题

时间:2012-03-23 21:40:02

标签: objective-c ios xcode

我在视图中有一组按钮,我根据他们的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];
}

1 个答案:

答案 0 :(得分:1)

任何视图的默认标记为零。因此,如果self.view具有非按钮的视图,则代码将崩溃。尝试将标记更改为非零,并确保self.view.subviews中的视图是UIButton类的成员,如下所示: if([button isMemberOfClass:[UIButton class]]){ //Do what you want to do }