OpenWeatherMapKit
OpenWeatherMapKit 是一个用 Swift 编写的简单框架,它为您提供了访问 OpenWeatherMap 服务 API 所有功能的权限,可以直接在您的 iOS / macOS / watchOS/ tvOS 应用中使用。
如何安装
🥥 Cocoapods
只需将以下行添加到您的 Podfile 中
pod 'OpenWeatherMapKit'
然后在项目根目录下从终端运行以下命令
pod update
如何使用
先决条件
为了让 OpenWeatherMapKit 正常工作,必须使用您的 API 密钥初始化。
您可以使用以下方法来初始化 OpenWeatherMapKit。只需将 [YOUR API TOKEN]
替换为您自己的 API 密钥,您可以从 https://home.openweathermap.org/api_keys 获取
OpenWeatherMapKit.initialize(withAppId: "[YOUR API TOKEN]")
使用方法
使用OpenWeatherMapKit
类来检索天气数据。它是一个单例,可以通过instance
变量访问其实例。
🌇 按城市获取天气
您可以通过城市名称检索特定城市的天气数据
OpenWeatherMapKit.instance.currentWeather(forCity: "Samara") { (forecast, error) in
...
}
或通过城市名称和国家代码检索
OpenWeatherMapKit.instance.currentWeather(forCity: "Samara", withCountryCode: "ru") { (forecast, error) in
...
}
🌍 按地理坐标获取天气
您可以通过坐标检索特定地理位置的天气数据
OpenWeatherMapKit.instance.currentWeather(forCoordiante: (latitude: 53.2610313, longitude: 50.0579958)) { (forecast, error) in
...
}
📆 获取未来5天的天气预报
您可以通过城市名称和国家代码检索特定城市的未来5天的天气数据
OpenWeatherMapKit.instance.weatherForecastForFiveDays(forCity: "Samara", withCountryCode: "ru") { (forecast, error) in
...
}
或通过坐标检索特定地理位置的数据
OpenWeatherMapKit.instance.weatherForecastForFiveDays(forCoordiante: (latitude: 53.2610313, longitude: 50.0579958)) { (forecast, error) in
...
}
🌤 WeatherItem
获取当前天气数据的所有操作都将返回特殊对象WeatherItem
类型。WeatherItem
是一个简单的结构体,包含了温度数据。以下是您可以访问的字段
/// Weather item's temperature values in Kelvin
public let kelvin: (currentTemp: Double, maxTemp: Double, minTemp: Double)
/// Weather item's temperature values in Celsius
public let celsius: (currentTemp: Double, maxTemp: Double, minTemp: Double)
/// Weather item's temperature values in Fahrenheit
public let fahrenheit: (currentTemp: Double, maxTemp: Double, minTemp: Double)
例如,如果您想获取摄氏度当前天气信息,可以使用以下语句实现
weatherItem.celsius.currentTemp
WeatherItem
可以从ForecastItem
的实例访问。以下是一个例子
forecast.main.celsius.currentTemp
🛣 开发路线图
请查看项目开发路线图如下
版本 | 预计时间 | 功能 |
---|---|---|
2018年1月 | 按城市和地理坐标提供当前天气预测,以及支持不同的单位(摄氏度、开尔文、华氏度) | |
2018年4月 | 按城市和地理坐标提供5天/3小时的天气预报。 | |
v0.3 | 2018年夏季 | 按城市和地理坐标提供16天的每日天气预报。 |