试图在Swift上使用EDSunriseSet SDK,但是得到了奇怪的日落时间

时间:2015-11-27 19:50:58

标签: ios swift github

我正在尝试使用此链接上提供的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)

我做错了吗?

2 个答案:

答案 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跟踪您的位置。如果您不在提供位置服务的设备上,则需要确保正确模拟位置。