2010-03-24 3 views
0

J'essaie d'obtenir la dernière date de modification d'un fichier:Get EXEC_BAD_ACCESS quand je reçois le NSFileModificationDate

NSFileManager *fm = [[NSFileManager alloc] init]; 
NSError *err; 
NSDate *lastModif = [[fm attributesOfItemAtPath:filename error:&err] objectForKey:NSFileModificationDate];//filename is ok ;-) 
if(err == nil) { 
    [lastModif retain]; 
    //I can put a NSLog of lastModif here, it works !! 
    NSTimeInterval lastModifDiff = [lastModif timeIntervalSinceNow];//crash here 
} 

Je ne comprends pas pourquoi le NSDate semble être libéré, pourquoi le conserver ne retient pas.

Merci si vous avez une idée ...

Répondre

0

Vous n'avez pas besoin de conserver lastModif. Je pense que vous pourriez essayer de traiter lastModifDiff comme un objet de quelque sorte quand vous faites un NSLog avec ou après ce que vous faites avec. NSTimeInterval est un typedef à un double donc vous devez le traiter comme un double ou [NSNumber numberWithDouble:lastModifDiff] si vous voulez l'utiliser comme un objet.

+0

Je ne fais rien avec lastModifDiff pour l'instant, il se bloque à l'allocation, car lastModif semble être nul selon le débogueur. – Toto

+0

Je cours votre code maintenant. Je sors la version inutile et ajoute un NSLog() après avoir défini lastModifDiff. Les deux valeurs sont définies pour moi. Êtes-vous sûr que votre nom de fichier est correct? – greg

+0

Oui, je peux le charger avec NSKeyedUnarchiver, et [fm fileExistsAtPath: filename] est OUI. – Toto

0

Je vais avoir le même problème, mais ce poste semblait germane:

NSDate : timeIntervalSinceNow crash

J'écris un simple ensemble de fonctions- StartClock/endClock -Utiliser NSDate pour déterminer FPS dans ma boucle de jeu . Sauf que timeIntervalSinceNow se bloque, affirmant que mon objet NSDate défini précédemment n'existe pas. Je sais pour un fait que l'objet NSDate a un nombre de retenue de 1 quand j'appelle startClock, mais ma théorie est que les instances de NSDate sont calées en interne pour être libérées lorsqu'elles s'ennuient et ne se sentent pas utiles. Utilisation de conserver/relâcher pour assumer la propriété de ces objets NSDate volants et éphémères travaillés pour moi.

Questions connexes