3 votos

Razones para que el tiempo del sistema iOS salte hacia atrás en un iPad mientras está desconectado

Mi equipo y me he topado con un bug, que es probablemente causado por el sistema iOS de tiempo no se incrementa monótonamente, pero al saltar hacia atrás. La medición de la diferencia de tiempo se acerca a 50 milisegundos. (Que, obviamente, no hay segundo salto o la zona horaria de emisión.)

Entendemos que los dispositivos iOS sincronizar su tiempo con los servidores NTP, mientras que estar en línea. Pero la negativa de la diferencia de tiempo se observó, mientras que no tener ninguna conexión de red.

Existen razones de iOS se actualiza la hora del sistema, mientras que fuera de línea?

Los mensajes relevantes:

  • Sin duda nos necesitan para seguir este enfoque para la medición del tiempo transcurrido. Pero, sin embargo, nos gustaría entender lo que estaba causando el salto.

  • Esta respuesta se menciona razones para el momento en salta, pero ninguno de ellos parece aplicar en mi caso.

  • Esta respuesta se menciona significativos cambios en el tiempo. Pero, ¿cuáles son los cambios insignificantes?

Actualización: Después de 2 horas en modo avión, se observa un salto en el tiempo de 637 ms en el pasado con System.DateTime.Now en un iPad Mini 2, mientras que CACurrentMediaTime aumento monótonamente. Todavía no está claro por qué iOS debería hacer un salto significativo después de un largo tiempo sin NTP actualizaciones.

1voto

Jose Chavez Puntos 645

El RTC del reloj es "ajustado" periódicamente para corregir su tiempo (por ejemplo para dar cuenta de reloj de deriva) - esto sucede no importa si estás en línea o fuera de línea. Esta es estándar en los sistemas operativos modernos, no sólo en iOS.

El error no está en su sistema operativo, pero en su aplicación. Si quieres un monótonamente creciente reloj, usted no debe utilizar el Sistema.DateTime.Ahora.

Con el fin de seleccionar la correcta temporizador/reloj función de su aplicación, es necesario determinar lo que usted desea utilizar el tiempo - y, a continuación, seleccione en consecuencia. I. e. es una necesidad diferente a querer el tiempo actual para mostrar al usuario en un "reloj de la aplicación" en comparación con la necesidad de tiempo para ejecutar un temporizador que el fuego de cada 50 ms periódicamente en un juego.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by: