¿Existe una biblioteca Objective-C (o C) (que sea compatible con la ubicación central) que pueda decirme la hora de salida y puesta del sol para un día calendario determinado?Biblioteca Objective-C para amanecer y atardecer?
Respuesta
EDSunriseSet es un contenedor de código abierto y Objective-C gratuito para las rutinas de C de idiomas creado por Paul Schlyter.
El cálculo se realiza en su totalidad por las rutinas de C-code. EDSunrisetSet tiende un puente sobre esos cálculos a clases de cacao común (NSDate, NSTimeZone, ...)
He usado una biblioteca llamada SUNWAIT. Muy simple, efectivo - ¡fácil de usar!
¿Has usado esto con Objective-C/para iOS? Además, ¿hay algún tutorial para comenzar? – Moshe
No, solo directamente C. Puede compilarlo como un archivo "C" estándar, y simplemente llamar a él. (Eso es lo que hice en mi aplicación, pero no era una aplicación de iPhone). – Brad
Brad - ¿Debo compilarlo por separado o incluirlo en mi proyecto y usar llamadas API? – Moshe
En realidad, he portado el KosherJava Library y planeo que esté disponible pronto en GitHub.
Editar:
KosherCocoa ya está disponible en GitHub! Si no necesita el código relacionado con el calendario hebreo, puede eliminar el archivo "calendario". Los archivos de clase están separados muy bien en carpetas según los tipos de cálculos que realizan.
Editar: KosherCocoa usaremos para ser reemplazado con una actualización moderna y más completa tan pronto como sea posible. El enlace anterior ahora apunta a un repositorio heredado.
el enlace de arriba a KosherCocoa está muerto, pero parece que todavía hay un par de copias en github. https://github.com/search?q=koshercocoa – Cruinh
¡Vaya, lo arreglaré en breve! – Moshe
@Cruinh - De hecho, estoy en proceso de modernizar el código fuente y las pruebas de unidad de escritura. – Moshe
probar esto: https://github.com/berkley/ObjectiveCUtil
Sólo una nota .. si se utiliza el Berkley uno ... así que no funciona (en Australia como mínimo). Sin embargo, incluye el código Paul Schlyter C, que es genial.
Si desea que funcione en cualquier lugar, lo mejor es calcular las fechas en UTC.
En SunriseAndSunset.m, reemplace el código de doble subida; juego doble; de la siguiente manera:
sun_rise_set(theYear, theMonth, theDay, lon, lat, &rise, &set);
int hours = HOURS(rise);
int mins = MINUTES(rise);
int sethrs = HOURS(set);
int setmins = MINUTES(set);
NSTimeInterval riseOffset = ((hours * 60) + mins) * 60;
NSTimeInterval setOffset = ((sethrs * 60) + setmins) * 60;
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSString *dateStr = [NSString stringWithFormat:@"%i-%02d-%02dT00:00:00+0000", theYear, theMonth, theDay];
NSDate *utcMidnight = [formatter dateFromString:dateStr];
NSDate *utcSunrise = [utcMidnight dateByAddingTimeInterval:riseOffset];
NSDate *utcSunset = [utcMidnight dateByAddingTimeInterval:setOffset];
[formatter release];
[gregorian release];
return [NSDictionary dictionaryWithObjectsAndKeys:utcSunrise, @"sunrise", utcSunset, @"sunset", nil];
Probablemente no funcione en Australia porque le dieron una fecha en la zona horaria GMT. Apuesto a que tenía '+ 0000' en lugar de' + 1000' en el NSDate cuando estaba depurando. La próxima vez use '[date descriptionInLocale: [NSLocale currentLocale]]' para depurar fechas. :-) –
Es difícil de recordar, pero estoy bastante seguro de que ese no era el caso, tenía más que ver con las suposiciones en el código y no con los valores atípicos. Pero de todos modos, lo anterior funciona bien y su ejemplo me ahorró algo de tiempo. ¡Así que eso es bueno! :) – DavidAWalsh
Ah, no me preocupo :-) Lo estoy usando en Australia, así que espero que hayan corregido los errores. Parece que funciona después de casi una semana de pruebas. –
Prueba esto: https://github.com/mourner/suncalc/
muy clara y fácil de implementar, aunque Escrito por javascript pero es fácil de convertirlo en
Objective-C
También soporte para calcular el sol, la posición de la luna y la coordinación.
Después de no encontrar una alternativa simple de Swift, creé Solar: una micro biblioteca creada por Swift para Sunrise/Sunset.
- 1. C# Amanecer/Atardecer con latitud/longitud
- 2. Cálculo de las horas del amanecer y el atardecer con PyEphem
- 3. Cómo calcular los tiempos de amanecer/anochecer
- 4. Cálculos de amanecer/conjunto
- 5. Diferencia entre NSLog y sentencia printf para ObjectiveC
- 6. Ayuda con código GCC y ObjectiveC y Cygwin
- 7. Pros y contras del uso de excepción en IOS/ObjectiveC
- 8. Bloques ObjectiveC equivalente en Java
- 9. objectivec: fb publicar comentario error
- 10. ObjectiveC Parse Integer from String
- 11. Uso de librerías estáticas C/C++ desde iPhone Aplicaciones ObjectiveC
- 12. Biblioteca para aplicaciones iOS y OS X?
- 13. Biblioteca para convertir native2ascii y viceversa
- 14. Biblioteca C# para SSH y Telnet
- 15. Biblioteca de compilación para Scala y Java
- 16. Biblioteca estática y Biblioteca dinámica: Confusión
- 17. enviar una notificación desde javascript en UIWebView a ObjectiveC
- 18. ¿Cómo implementar un puente sin cargo en ObjectiveC/C?
- 19. ¿Puedo colocar un ObjectiveC @selector en un NSDictionary?
- 20. Crear una burbuja/círculo de color programáticamente en ObjectiveC y Cocoa
- 21. ObjectiveC: ¿dónde declarar las propiedades de instancias privadas?
- 22. obteniendo el error "invalid_client" en la muestra gdata-objectivec-client
- 23. ObjectiveC que pasa alrededor ... nula terminado listas de argumentos
- 24. Cómo dividir la nueva línea de NSString en ObjectiveC
- 25. ObjectiveC Sintaxis para especificar el nombre del protocolo en el argumento del método
- 26. Biblioteca UPnP para .Net
- 27. Biblioteca UI para XNA
- 28. ¿Biblioteca QR para MonoTouch?
- 29. Biblioteca SASL para .net
- 30. Biblioteca para IMAP IDLE
Este funciona para mí. Recientemente (enero de 2013) se actualizó para algunos errores de memoria, por lo que si lo está utilizando, asegúrese de obtener el código más reciente. – mpemburn