Pourquoi ce code ne fonctionne-t-il pas? L'application se charge bien, mais chaque fois que j'appuie sur le bouton l'application se bloque (ne plante pas) et me renvoie à Xcode et il y a une flèche rouge pointant vers l'une des lignes (indiqué sur la ligne ci-dessous). Je reçois également trois avertissements (pas d'erreurs), l'un dit 'NSMutableArray' peut ne pas répondre à '-objectAt:' et le second dit la variable inutilisée 'soundToPlay' Le troisième dit la déclaration implicite de la fonction 'AudioServicesPlaySystemSound' Je suis préoccupé par ceux-là?Quel est le problème avec ce tableau? Chaque fois que je lance l'action, il se bloque
//In MainViewController.h
@interface MainViewController : UIViewController {
IBOutlet UIButton *Button;
}
@property (nonatomic, retain) UIButton *Button;
- (IBAction)playSound;
NSInteger currentSound;
NSMutableArray *soundArray;
@end
//In MainViewController.m
- (void)viewDidLoad {
currentSound = 0;
NSMutableArray *sounds = [[NSMutableArray alloc] init];
[sounds addObject: @"0.wav"];
[sounds addObject: @"1.wav"];
[sounds addObject: @"2.wav"];
[sounds addObject: @"3.wav"];
[sounds addObject: @"4.wav"];
[sounds addObject: @"5.wav"];
[sounds addObject: @"6.wav"];
[sounds addObject: @"7.wav"];
[sounds addObject: @"8.wav"];
[sounds addObject: @"9.wav"];
[sounds addObject: @"10.wav"];
[sounds addObject: @"11.wav"];
[sounds addObject: @"12.wav"];
[sounds addObject: @"13.wav"];
[super viewDidLoad];
}
- (IBAction)playSound {
NSString *soundToPlay = [soundArray objectAt: currentSound];
//First two errors here.
currentSound = (currentSound + 1) % [soundArray count]; //Red arrow points to this line.
AudioServicesPlaySystemSound (currentSound);
//Third error here.
}
Merci qui a aidé à se débarrasser de toutes les erreurs, sauf cette erreur variable inutilisée. Essentiellement ce que je voudrais faire utiliser les noms générés dans le tableau comme le nom du fichier audio et ensuite le jouer, j'ai essayé quelques méthodes telles que la fonction AudioServicesPlaySystemSound mais pas de chance. J'ai vérifié la documentation d'Apple pour cela et j'ai fait quelques recherches sur Google, mais je n'ai pas réussi à trouver une réponse solide et fonctionnelle. – JoeyParis
Le fait est que AudioServicesPlaySystemSound prend un SystemSoundID et pas un NSString. C'est de la documentation: Le son du système à jouer. Avant d'utiliser cette fonction, appelez la fonction AudioServicesCreateSystemSoundID pour obtenir un son système. Avez-vous lu cette notice? Je n'ai pas beaucoup d'expérience avec cette partie des frameworks. Mais vous stockez NSStrings dans le tableau et vous ne pouvez pas analyser le contenu directement dans la fonction. C'est pourquoi vous obtenez une erreur maintenant ... –
essayez de regarder dans cet exemple de code: https://developer.apple.com/iphone/prerelease/library/samplecode/SysSound/index.html –