Domanda

sto vedendo un comportamento strano con il tentativo di ottenere secondi dal periodo in Objective C. Questo:

NSString *nowTimestamp = [NSString stringWithFormat:@"%d", 
                             [[NSDate date] timeIntervalSince1970]];

Uscite 15907296, quando il timestamp corrente dovrebbe essere 1.243.555,623 mila (05/28/2009 @ 19:08 EST). L'ora di sistema su iPhone è corretta. Io non riesco a capire per la vita di me quello che sto facendo male. Tutti i consigli?

È stato utile?

Soluzione

timeIntervalSince1970 restituisce un NSTimeInterval, che è un typedef per doppia; % D non è il formattatore diritto di stampare una doppia (che si desidera% f).

Altri suggerimenti

Mentre il ritorno da [[NSDate date] timeIntervalSince1970]; è un doppio, si potrebbe provare questo:

NSString *nowTimestamp = [NSString stringWithFormat:@"%f", 
                         [[NSDate date] timeIntervalSince1970]];

Sei sicuro che il risultato da NSDate è un int decimale? La documentazione dicono che è un doppio. Si potrebbe provare a fusione.

Inoltre, a volte si ottiene un valore del puntatore indietro invece del valore effettivo, se qualcosa è un NSNumber sotto le coperte, potrebbe essere necessario utilizzare intValue, o doubleValue per ottenere l'effettivo contenuto di ciò che è all'indirizzo.

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