2016-01-18 4 views
1

Je reçois parfois EXC_BAD_ACCESS KERN_PROTECTION_FAILURE dans la méthode suivante:Obtenir EXC_BAD_ACCESS KERN_PROTECTION_FAILURE

+ (NSString *) UTCStringWithDate:(NSDate *)date { 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"]; 
    NSLocale *enLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; 

    [dateFormatter setLocale:enLocale]; 
    [dateFormatter setTimeZone:timeZone]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; 
    NSString *dateString = [dateFormatter stringFromDate:date]; 
    return dateString; 
} 

Ce qui pourrait aller mal? S'il vous plaît aider!

+0

Il n'y a rien de mal avec cette méthode. L'utilisation est probablement incorrecte quelque part. – Hamish

+0

il n'y a rien de mal avec cette méthode. J'ai aussi un bon journal. Vérifiez votre appel. –

+0

Publiez la pile de pile. – trojanfoe

Répondre

0

On ne sait pas de la description qui est la ligne s'écraser, donc c'est ma meilleure estimation:

Il est probablement quelque chose est parfois mal à l'argument NSDate entrant. S'il existe une condition de concurrence pour la date, il se peut qu'elle soit libérée et que son emplacement RAM soit rempli avec un nouvel objet avant que cette méthode ne commence ou juste après le début. Essayez d'exécuter votre code avec NSZombies activé ou essayez de vérifier qu'il s'agit toujours d'un objet NSDate juste avant de l'utiliser.

NSAssert([date isKindOfClass:[NSDate class]], @"Error, expected 'NSDate', but argument class was '%@'", NSStringFromClass([date class])); 
NSString *dateString = [dateFormatter stringFromDate:date];