Question

J'ai regardé la fonction timeIntervalSinceReferenceDate de NSDate. Puis-je utiliser cette fonction pour stocker l'intervalle sur le disque et puis revenir à NSDate avec la même valeur que l'original? Je me méfie que la référence ou l'intervalle peuvent varier entre les machines et trouver différemment sur un autre ordinateur?

Était-ce utile?

La solution

NSDate peut être archivé comme une instance NSData et NSData peut être facilement écrit à / lecture à partir du disque.

// Create and store it
NSDate * date = [NSDate date];
NSData * dateData = [NSKeyedArchiver archivedDataWithRootObject:date];
[dateData writeToFile:@"/Some/path/to/file.dat" atomically:NO];

// Now bring it back
NSData * restoredDateData = [NSData dataWithContentsOfFile:@"/Some/path/to/file.dat"];
NSDate * restoredDate = [NSKeyedUnarchiver unarchiveObjectWithData:restoredDateData];

Aucune vérification d'erreur se fait. Faire mieux que cela. ; -)

Autres conseils

Par ailleurs, si vous voulez stocker le résultat de timeIntervalSinceReferenceDate vous pouvez stocker dans un NSNumber en double et puis enregistrez que sur le disque en utilisant la méthode NSKeyedArchiver de Joshua.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top