我正在尝试使用此链接上提供的EDSunriseSet SDK计算用户在我的Swift应用中的位置的日落时间:https://github.com/erndev/EDSunriseSet
我正在使用系统的NSDate,但是我的日落时间很奇怪:
Date: 2015-11-27 19:47:58 +0000
TimeZone: America/Caracas
Local Sunset: <NSDateComponents: 0x7fa7716212e0>
Hour: 13 //SUNSET AT 1PM MAKES NO SENSE
Minute: 21
Second: 10
我的代码如下:
let today = NSDate()
let currentLocation = CLLocation()
let sunrise = EDSunriseSet(date: today, timezone: NSTimeZone.localTimeZone(), latitude: currentLocation.coordinate.latitude, longitude: currentLocation.coordinate.longitude)
print(sunrise)
我做错了吗?
答案 0 :(得分:1)
这个实现对我有用:
let today:NSDate = NSDate()
let calculator = EDSunriseSet(timezone: NSTimeZone.localTimeZone(), latitude: 49.195060, longitude: 16.606837)
calculator!.calculateSunriseSunset(today)
print(calculator!.sunrise!)
print(calculator!.sunset!)
捷克共和国布尔诺的产出:
2015-11-28 06:22:28 +0000
2015-11-28 15:00:20 +0000
答案 1 :(得分:0)
问题是使用CLLocation()初始化的currentLocation不包含您的实际地理坐标。打印出currentLocation对象的坐标,看看它们是什么。有可能是0.0 / 0.0。您可以为CLLocation初始化程序提供纬度/经度,或使用CLLocationManager跟踪您的位置。如果您不在提供位置服务的设备上,则需要确保正确模拟位置。