2011-03-08 5 views
8

Estoy buscando un ejemplo donde + autoupdatingCurrentCalendar se usaría en lugar de + currentCalendar. Más específicamente, donde los valores basados ​​en el calendario se cambian automáticamente cuando cambia el calendario. ¿Necesito enlaces para esto o algo así?Ejemplo de cuándo usar [NSCalendar autoupdatingCurrentCalendar]

El estado docs:

Tenga en cuenta que si se hace una caché valores basados ​​en el calendario o información relacionada esos cachés, por supuesto, no puede ser actualizan automáticamente por la actualización de del objeto de calendario.

Gracias de antemano

Respuesta

1

Bueno, en OS X que se pueden ejecutar múltiples procesos simultáneos. Uno podría ser su proceso que usa el autoupdatingCurrentCalendar. El otro podría ser Preferencias del sistema.

Preferencias del sistema le permite personalizar la configuración de su calendario. Puede elegir el primer día de la semana como algo diferente al predeterminado (domingo). O puede elegir un calendario completamente diferente por completo. Si usa autoupdatingCurrentCalendar, estos cambios se recogerán automáticamente. Si no lo usas, no lo harán.

0

Supongo que solo es útil si almacena el calendario en la memoria para un uso posterior. De esta manera, si la configuración del calendario cambia, su calendario almacenado tendrá en cuenta esos cambios si utilizó autoupdatingCurrentCalendar. Si solo usó currentCalendar, se mantendrá en el estado en que se encontraba en su primera llamada.

4

currentCalendar devuelve la versión en caché del calendario del sistema actual, mientras que autoupdatingCurrentCalendar siempre devuelve la versión más reciente del calendario del sistema.

Esto es importante cuando presenta datos basados ​​en los diversos parámetros de un calendario como el número de días en un mes, el número de semanas en un año o el número de horas en un día.

Para ser sincero, no sé por qué Apple le da la oportunidad de obtener un valor obsoleto usando currentCalendar. Parece que tienen API interna que le permite manipular cachés de NSCalendar, por lo que puede lograr un mejor rendimiento. Pero como no es público, no hay ninguna razón para usar currentCalendar.

Es decir, siempre use autoupdatingCurrentCalendar.

+0

Usted dice completamente al revés. – CodenameLambda1

+0

@ CodenameLambda1 Probablemente sea cierto en las versiones más recientes de OSX. Pero, por lo que recuerdo, tuve problemas en 10.6 o 10.7 – Kentzo