Impostando l'ora su iDevice a 64 bit a gennaio 1, 1970 (tempo Unix Epoch 0) e riavviandolo, l'iDevice diventa in mattoni a causa di un underflow intero. La mia domanda riguarda quale operazione provoca effettivamente lo schianto:
Metodo 1: Hai chiamato qualcuno al momento Epoch 1455403324, questo numero è stato salvato per i calcoli del timestamp per vedere quanto tempo fa hai fatto la chiamata. Ora modifichi l'ora in 1/1/1970. Sono passati 5 minuti e il tuo Epoch time è ora 300 ma un calcolo del timestamp per l'ultima chiamata è in esecuzione e l'equazione è 300 (ora corrente) - 1455403324 (l'ultima volta che hai chiamato) che è un valore negativo, causando l'intero underflow (assumendo il numero intero di timestamp è senza segno, il che non avrebbe senso se non fosse perché, proprio come l'assunto con il valore dell'ora attuale, come è possibile che qualcuno abbia chiamato un altro x minuti in futuro?)?
Metodo 2: Come affermato in precedenza da qualcuno, "In alcuni fusi orari, impostando la data al 1 ° gennaio 1970, l'orologio interno verrà impostato su un numero inferiore a zero, poiché l'ora viene memorizzata in GMT (come il numero di secondi dalla mezzanotte in tale data) e quindi l'offset viene applicato prima della visualizzazione ", scritto da link . "In altri fusi orari, l'impostazione dell'orologio si tradurrà in un valore temporale positivo. La migliore ipotesi è che questo viene attivato dal fatto che il valore temporale è inferiore a zero."
Sono entrambi validi o uno o l'altro?