ForecastIO 8.0.0

ForecastIO 8.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2019年9月
SPM支持 SPM

Satyam Ghodasara 维护。



ForecastIO

Swift CI Status Documentation Carthage compatible Version License Platform

需求

要使用 ForecastIO,您只需具备 Dark Sky API 的 API 密钥。Dark Sky API。ForecastIO 支持 iOS (≥9.0),macOS (≥10.10),watchOS (≥2.0) 和 tvOS (≥9.0)。

安装

ForecastIO 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中。

pod "ForecastIO"

要使用 Carthage 集成,请指定它在您的 Cartfile 中。

github "sxg/ForecastIO"

Swift 2.3

swift2.3 分支上有 Swift 2.3 兼容版本的 ForecastIO。这个版本冻结在 ForecastIO 2.1.1 API,不再受支持。要安装 Swift 2.3 兼容版本的 ForecastIO,只需将以下行添加到您的 Podfile 中。

pod "ForecastIO", :git => "https://github.com/sxg/ForecastIO.git", :branch => "swift2.3"

要使用 Carthage 集成 Swift 2.3 兼容版本,请将其指定在您的 Cartfile 中。

github "sxg/ForecastIO" "swift2.3"

文档与单元测试

ForecastIO的完整文档可以在CocoaDocs上找到。

ForecastIO包含一套完整的单元测试,代码覆盖率100%。

使用

首先创建一个具有您的API密钥的DarkSkyClient

import ForecastIO
...
let client = DarkSkyClient(apiKey: "YOUR_API_KEY_HERE")

您可以选择希望Forecast响应使用的单位。

client.units = .si

支持的单位有:

  • 国际单位制(SI)
  • 美国单位(默认)
  • 加拿大单位
  • 英国单位
  • 自动(使用您请求天气数据位置的本地区域单位)

关于每个属性的单位的更多详细信息请参见Dark Sky API文档

您还可以选择希望Forecast响应使用的语言。

client.language = .english

支持许多语言(完整列表见此处)。如果没有指定语言,则默认使用英语。

使用DarkSkyClient,您可以发出两种类型的请求。第一种类型将获取特定位置的当前Forecast

let myLoc = CLLocationCoordinate2D(latitude: myLat, longitude: myLon)
client.getForecast(location: myLoc) { result in
    switch result {
    case .success(let currentForecast, let requestMetadata):
        // We got the current forecast!
    case .failure(let error):
        // Uh-oh. We have an error!
    }
}

第二种类型的请求被称为时间机请求,它将获取特定位置特定时间的Forecast

let myLoc = CLLocationCoordinate2D(latitude: myLat, longitude: myLon)
client.getForecast(location: myLoc, time: myTime) { result in
    switch result {
    case .success(let forecast, let requestMetadata):
        // We got the forecast!
    case .failure(let error):
        // Uh-oh. We have an error!
    }
}

您收到的Forecast将包含元数据以及相关的DataPointDataBlock。例如,在Forecast上的currently属性代表在特定时间发生的各种天气现象。例如,在Forecast上的minutelyhourlydaily属性代表在一段时间内发生各种天气现象,并以一个DataPoint数组表示。

DataPointDataBlock包含大量信息,您可以通过getForecast方法的excludeFields参数从API响应中排除任何这些字段。excludeFields是可选的,默认为空数组,表示不会从API响应中排除任何数据。或者,如果您需要更多数据,可以将getForecast方法的extendHourly参数设置为true,使Forecast上的hourly属性返回整个一周的每小时数据而不是24小时。extendHourly是可选参数,默认为false。在时间机请求中不支持extendHourly

有关所有模型上定义的所有属性的完整列表,请参阅CocoaDocs上的完整文档

作者

萨蒂亚姆·戈达萨拉,[email protected]@_Satyam_

许可证

ForecastIO可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。