Objective-c EXC_BAD_ACCESS (code=2, address=0x42)

Je suis nouveau en Objective-C programmation et j'ai cette erreur quand je lance mon programme (je veux juste la génération aléatoire de char). Alors, voici ce que j'ai fait jusqu'à présent:

(IBAction)generate{
  int a = arc4random() % 26;
  NSString * chaine = @"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  char lettre = [chaine characterAtIndex:a];

  NSMutableString * mot = [[NSMutableString alloc] initWithCharacters:lettre length:1];
  hasard.text = mot;
}

J'ai essayé de simplement mettre ma variable 'lettre' au hasard.le texte, mais il ne fonctionnera pas avec l'erreur " Incompatible entier pointeur de la conversion de l'affectation à 'NSString *' de 'char'. J'ai donc créé un NSMutableString à contenir mon caractère.

Quand je mets le caractère "e" à la main au lieu de la variable "lettre" sur la cinquième ligne, il fonctionne bien. Depuis que je peux voir dans le débogueur "lettre" contient une lettre aléatoire, pourquoi ai-je l'erreur dans le titre ?

(EXC_BAD_ACCESS (code=2, address=0x42)).

Vous devriez préférer arc4random_uniform(3) à arc4random(3) avec modulo.

OriginalL'auteur Gab | 2012-06-13