J'ai une méthode qui est ici dans mon code:Pourquoi ma méthode ne fonctionne-t-elle pas complètement? (IPhone SDK)
-(IBAction) actionButtonPressed: (id) sender{
NSLog(@"%@",actionButton.titleLabel.text);
if (actionButton.titleLabel.text == @"Begin Recording"){
[actionButton setTitle:@"Finish Recording" forState:UIControlStateNormal];
[actionButton setTitle:@"Finish Recording" forState:UIControlStateApplication];
[actionButton setTitle:@"Finish Recording" forState:UIControlStateHighlighted];
[actionButton setTitle:@"Finish Recording" forState:UIControlStateReserved];
[actionButton setTitle:@"Finish Recording" forState:UIControlStateSelected];
[actionButton setTitle:@"Finish Recording" forState:UIControlStateDisabled];
UIImage *redButton = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"bigredbutton" ofType:@"png"]];
[actionButton setBackgroundImage:redButton forState:UIControlStateNormal];
[actionButton setBackgroundImage:redButton forState:UIControlStateApplication];
[actionButton setBackgroundImage:redButton forState:UIControlStateHighlighted];
[actionButton setBackgroundImage:redButton forState:UIControlStateReserved];
[actionButton setBackgroundImage:redButton forState:UIControlStateSelected];
[actionButton setBackgroundImage:redButton forState:UIControlStateDisabled];
}
if (actionButton.titleLabel.text == @"Finish Recording"){
[self dismissModalViewControllerAnimated:YES];
}
}
Pour une raison quelconque l'appel NSLog fonctionne et affiche sur la console. Le bouton commence à lire l'enregistrement de début, mais en appuyant dessus, il ne fait rien, même si elle est liée à Touch Up Inside dans Interface Builder pour appeler cette méthode et est référencée.
C'est pour la plupart correct, mais je pense que vous devriez utiliser isEqualToString, pas isEqual. Pour développer un peu ce que Dave a dit, l'opérateur == n'évaluera que true lors de la comparaison de chaînes constantes, et il est encore mal formulé de l'utiliser de cette façon. Utilisez isEqualToString pour toutes les comparaisons de chaînes. –
@Andrew - assez juste. Réponse éditée (Bien que je n'ai jamais eu de problème avec l'utilisation de 'isEqual:') –
Ouais, je pensais que ça marcherait parce que c'est ce que vous disiez, mais je ne l'ai jamais utilisé auparavant ... Je me demande s'il y en a différence. –