2010-04-16 3 views
1

J'essaie d'utiliser l'UIActionSheet dans mon application iPhone mais j'ai le problème suivant. Lorsque j'appuie sur le bouton "Je ne sais pas", l'application plante. Lorsque je supprime l'instruction NSLog de la feuille d'action: clickedButtonAtIndex: ce n'est pas le cas. Le bouton "Oui, faites-le" fonctionne très bien et je vois l'instruction du journal dans la console. Qu'est-ce qui ne va pas?Pourquoi UIActionSheet annule-t-il mon application?

- (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); 
} 

Répondre

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

buttonIndex est un nombre entier, et le %@ seulement attend objets ObjC (et non des nombres entiers). Cette non-concordance fait planter le système. Utilisez

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

à la place.

+0

NSInteger n'est-il pas un objet ObjC? –

+1

il est défini comme: typedef int NSInteger; – Vladimir

+0

Indice - regardez l'indicateur de touche de décodage NSInteger. Il n'y a pas de * – willcodejavaforfood

Questions connexes