2010-10-08 2 views
0

Salut J'essaie d'implémenter la fonctionnalité Captcha. Le code suivant, j'ai utilisé pour générer le mot au hasard:Fires EXC_BAD_ACCESS

-(void) createCaptchaWord{ 
     lettersArray = [[NSMutableArray alloc] initWithObjects:@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z", nil]; 
     randomWord = @""; 

    for(NSUInteger i=0;i<5;i++){ 
     NSUInteger randomNumber = arc4random()%[lettersArray count]; 
     randomWord = [randomWord stringByAppendingString:[lettersArray objectAtIndex:randomNumber]]; 
     //randomWord = [NSString stringWithFormat:@"%@%@",randomWord,[lettersArray objectAtIndex:randomNumber]]; 
    } 

    NSString *captchaUrl = [NSString stringWithFormat:@"%@%@",CommonFunctions.captchaImgUrl,randomWord]; 
    UIImage *captchaImage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:captchaUrl]]]; 

    [captchaImgView setImage:captchaImage]; 
} 

Le problème est avec la variable randomWord. Je peux accéder à cette variable à l'intérieur de la méthode nommée "createCaptchaWord". Il y a une autre fonction pour sauvegarder toutes les informations entrées. Dans cette méthode, lorsque j'ai essayé d'accéder à la variable "randomWord", j'ai reçu l'exception EXC_BAD_ACCESS. Puis j'ai activé NSZombie. Ainsi je suis arrivé le message suivant dans la console:

- [CFString respondsToSelector]: message envoyé à l'instance désallouées 0x4656c10

Quelqu'un peut me aider à résoudre ce problème.

Cordialement, Sreelash

+0

Comment randomWord déclaré dans votre code? –

Répondre

1

Vous devez conserver la valeur qui sera affectée à la variable randomWord soit en utilisant retain ou une méthode setter (quand il est une propriété) comme self.randomWord = ...