Xcode 语句需要整数类型的表达式('NSArray*\uuuu\strong'无效)

Xcode 语句需要整数类型的表达式('NSArray*\uuuu\strong'无效),xcode,integer,nsarray,switch-statement,Xcode,Integer,Nsarray,Switch Statement,下面是代码的第1部分 menuItems = [[NSArray alloc]initWithObjects:@"page 1",@"page 2",@"page 3",@"page 4",@"page 5",@"page 6",@"page 7", nil]; for (int b=0;b<[menuItems count];b++) { UIButton *mybutton = [[UIButton alloc]initWithFrame:CGRectMake(3.0f, or

下面是代码的第1部分

menuItems = [[NSArray alloc]initWithObjects:@"page 1",@"page 2",@"page 3",@"page 4",@"page 5",@"page 6",@"page 7", nil];
for (int b=0;b<[menuItems count];b++) {
    UIButton *mybutton = [[UIButton alloc]initWithFrame:CGRectMake(3.0f, originofButtons, buttonWidth, buttonHeight)];
    mybutton.backgroundColor = [UIColor redColor];
    [mybutton setTag:b];
    [mybutton setTitle:[menuItems objectAtIndex:b] forState:UIControlStateNormal];
    [mybutton setSelected:false];
    [mybutton addTarget:self action:@selector(buttonpress:) forControlEvents:UIControlEventTouchUpInside];

    [m_scrollview addSubview:mybutton];

    originofButtons += (buttonHeight + buttonseparator);

}
我无法让它切换。下面的代码在技术上是正确的,因为xcode没有显示错误。但它不会跑。然后xcode会给我错误信息:

[MainViewController按钮按下:]:发送到实例0x7fb5385c1c40 2014-12-13 23:09:37.705应用程序[13563:14150802]*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[MainViewController按钮按下:]:发送到实例0x7fb5385c1c40的未识别选择器”*第一次抛出调用堆栈:

如果我使用下面的代码,我可以让它工作。所有@1,2,3,4,5等将具有相同的序列

-(void)buttonpress:(id)sender {
[self performSegueWithIdentifier:@"about" sender:self];
[self drawerAnimation];



}

我是一名OSX程序员,所以细节可能会有点不同,但基本上答案在你问题的标题中

在switch语句中,buttonpress必须是整数。另外,通过包含一个默认操作使switch语句详尽无遗也是一个好主意

-(void)buttonpress:(id)sender 
{
    NSInteger senderButton = [sender tag];

    switch (senderButton)
    {
    case 0:
        [self performSegueWithIdentifier:@"about" sender:self];
    break;
    case 1:
      [self performSegueWithIdentifier:@"about" sender:self];
    break;
    case 2:
      [self performSegueWithIdentifier:@"about" sender:self];
    break;
    case 3:
       [self performSegueWithIdentifier:@"about" sender:self];
    break;
    case 4:
       [self performSegueWithIdentifier:@"about" sender:self];
    break;
    default:
        [self performSegueWithIdentifier:@"about" sender:self];
    break;
    }
}  
我还假设该声明:

[self performSegueWithIdentifier:@"about" sender:self];

发送有效的选择器。否则,Xcode将无法捕捉到这一点。这将是一个运行时错误

哥们,太棒了!我已经和它斗争了好几个月了。我完全忽略了!为了寻找答案,我改变了密码50次,结果很简单,是的。segue发送一个有效的选择器。。。非常感谢。
[self performSegueWithIdentifier:@"about" sender:self];