Programme du signal reçu: “EXC_BAD_ACCESS”
J'ai une chaîne de caractères de la variable qui stocke la date de sélecteur de date, mais lorsque j'utilise sa valeur dans une autre fonction, je suis d'erreur comme Program received signal: “EXC_BAD_ACCESS”. Remarque: la variable est définie globalement.
code :
- (void) changedDate: (UIDatePicker *) picker
{
if (appDelegate.dateint == 8)
{
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"dd MMM, yyyy"];
datestr=[dateFormatter stringFromDate:[dptpicker date]];
NSLog(@"date:%@",datestr);
}
else if(appDelegate.dateint == 9)
{ NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"dd MMM, yyyy"];
datestr1=[dateFormatter stringFromDate:[dptpicker date]] ;
NSLog(@"date1:%@",datestr1);
}
}
OriginalL'auteur Harshal | 2011-03-02
Vous devez vous connecter pour publier un commentaire.
Vous devez conserver cette chaîne. C'est la raison la plus probable.
Edit:
La seule raison pour laquelle il est en échec est le mauvais pointeur. Le mauvais pointeur = plus de libération de l'objet. Il suffit d'exécuter votre application avec des zombies et vous verrez l'endroit où vous êtes en train de faire. Cochez cette http://www.markj.net/iphone-memory-debug-nszombie/
Poste le code où vous êtes l'obtention de crash. Et la trace de la pile.
Et même si vous êtes en conservant la chaîne, il ne signifie pas que vous n'êtes pas sur de libération. Assurez-vous également que vous n'êtes pas appeler certains extra autorelease messages.
- (void) changedDate: (UIDatePicker *) sélecteur { if (appDelegate.dateint == 8) { NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; [dateFormatter setDateFormat:@"dd MMM yyyy"]; datestr=[dateFormatter stringFromDate:[dptpicker date]]; NSLog(@"date:%@",datestr); } else if(appDelegate.dateint == 9) { NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; [dateFormatter setDateFormat:@"dd MMM yyyy"]; datestr1=[dateFormatter stringFromDate:[dptpicker date]] ; NSLog(@"date1:%@",datestr1); } }
Qu'entendez-vous dans les différentes fonction? La seule raison pour laquelle il est en échec est le mauvais pointeur. Le mauvais pointeur = plus de libération de l'objet. Il suffit d'exécuter votre application avec des zombies et vous verrez l'endroit où vous êtes en train de faire. Cochez cette markj.net/iphone-memory-debug-nszombie
OriginalL'auteur Max
Chaque fois qu'il y a un blocage, post le backtrace.
Avant, servez-vous de "construire et d'analyser" et de résoudre tous les problèmes qu'il identifie.
Après avoir fait ça, si ça plante encore, puis faire une passe avec Zombie de détection et de voir si vous êtes dessus de libération de quelque chose (ce qui est probable, que le code a une évidente plus-libération problème est).
Si c'est encore de s'écraser, alors nous aurons besoin de voir plus de code....
OriginalL'auteur bbum