Domanda

Ho esaminato la funzione timeIntervalSinceReferenceDate di NSDate.Posso usare questa funzione per memorizzare l'intervallo su disco e poi restituirlo a NSDate con lo stesso valore dell'originale?Temo che il riferimento o l'intervallo possa variare tra le macchine e apparire in modo diverso su un altro computer?

È stato utile?

Soluzione

NSDate può essere archiviato come istanza NSData e NSData può essere facilmente scritto / letto dal disco.

// 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];

Non viene eseguito alcun controllo degli errori.Fai di meglio.;-)

Altri suggerimenti

In alternativa, se si desidera memorizzare il risultato di timeIntervalSinceReferenceDate, è possibile memorizzarlo in un NSNumber come double e quindi salvarlo su disco utilizzando il metodo NSKeyedArchiver di Joshua.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top