I try to use the UIActionSheet within my iPhone App but have the following problem. When I tap the cancel button "I don't", the app crashes. When I remove the NSLog statement from the actionSheet:clickedButtonAtIndex: it does not. The "Yes, do it" button works just fine and I see the log statement in the console. What's wrong?
- (void) doItWithConfirm {
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"do you really wanna do it?"
delegate:self cancelButtonT开发者_Python百科itle:@"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);
}
NSLog(@"buttonIndex: %@", buttonIndex);
buttonIndex is an integer, and the %@
only expects ObjC objects (not integers). This mismatch make the system crashes. Use
NSLog(@"buttonIndex: %d", buttonIndex);
instead.
精彩评论