为什么UIActionSheet会取消我的应用程序崩溃?

时间:2010-04-16 13:49:22

标签: iphone cocoa-touch

我尝试在我的iPhone应用程序中使用UIActionSheet但有以下问题。当我点击取消按钮“我没有”时,应用程序崩溃。当我从actionSheet中删除NSLog语句时:clickedButtonAtIndex:它没有。 “是的,做它”按钮工作得很好,我在控制台中看到了日志语句。怎么了?

- (void) doItWithConfirm {

    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"do you really wanna do it?" 
                            delegate:self cancelButtonTitle:@"I don't" destructiveButtonTitle: nil
                            otherButtonTitles:@"Yes, do it", nil];

    [actionSheet showInView:self.view];
    [actionSheet release];
}

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

    NSLog(@"buttonIndex: %@", buttonIndex);
}

1 个答案:

答案 0 :(得分:4)

NSLog(@"buttonIndex: %@", buttonIndex);

buttonIndex是一个整数,%@只需要ObjC对象(不是整数)。这种不匹配会导致系统崩溃。使用

NSLog(@"buttonIndex: %d", buttonIndex);

代替。