logo-square-300
下载
下载SDK
全新上线iOS SDK
为您的App用户提供天气服务
开始

心知天气iOS SDK简介

心知天气iOS SDK是一套天气数据查询调用接口,供开发者在自己的app中便捷地获取由心知天气提供的各种气象数据。 该SDK具有如下特点:

  • 对所有注册用户免费开放使用。
  • 使用更安全的签名验证方式,确保开发者的密钥不会被泄露。
  • 可以获取用户当前套餐包含的全部数据。


版本信息:

最新SDK版本号:v1.0.1

支持iOS版本:iOS 8.0以上版本


API密钥和用户ID

SDK需要使用您的心知天气API密钥和用户ID来进行与服务端的交互,我们会保护您的密钥在网络传输过程中不被泄漏。

我的API密钥:登录后查看

API密钥(key)是用来验证API请求合法性的一个唯一字符串。

我的用户ID:登录后查看

用户ID是在注册心知会员时系统自动分配的一个随机10位的字符串,如U123456789。


开发环境配置

第一步:在XCode中打开您的工程,将下载的.framework文件拖拽到工程文件夹中。

注意:如果您使用XCode7以前的版本,则还需要进行如下配置:

在左侧目录选中工程,然后在"Targets > Build Phases > Link Binary With Libraries"中点"+"按钮,在弹出的窗口中点击"Add Other"按钮选择刚添加的framework文件。

第二步:在"Targets > Build Settings > Framework Search Paths"中添加.framework文件所在的路径。

第三步:在"Targets > Build Settings > Linking"中查看"Runpath Search Paths",确保里边有"@executable_path/Frameworks"这一项。

第四步:在"Targets > Build Phases"中点"+"按钮,添加一个"Copy Files"步骤,将.framework文件拷贝到Executables里的Frameworks目录。


注意:此SDK为模拟器和真机通用的版本,如果您想要下载真机专用的版本(体积会更小一点),请点击此处下载


示例代码

iOS SDK的主要入口类是TPWeatherManager。它可以用来获取心知天气提供的各种数据服务信息,并通过回调函数将结果或者错误信息返还给调用者。

注意:TPWeatherManager本身并不要求App必须在单例模式中使用它,但我们建议您这样做。


调用initWithAccessCode: userId: 方法初始化一个TPWeatherManager实例。accessCode(心知天气API密钥)是属于您的私密信息。 TPWeatherManager使用它进行网络请求时会进行加密以确保不被意外泄露,请您在编写客户端应用程序代码时也注意避免被第三方获取该信息。 调用TPWeatherManager方法时能够返回什么数据是由您的用户等级决定的,最高等级可以获取心知天气提供的所有服务数据:

[[TPWeatherManager alloc] initWithAccessCode:@"My_Api_Key" userId:@"My_User_Name"];

TPWeatherManager提供了一组方法,用于获取心知天气提供的各类气象数据。 下面是一个完整的例子,创建TPWeatherManager实例并获取当前北京的实况天气:

//使用心知天气官网获取的key和用户id初始化WeatherManager
TPWeatherManager *weatherManager = [[TPWeatherManager alloc] 
    initWithAccessCode:@"My_Api_Key" userId:@"My_User_Name"];

// 获取北京当前天气,使用简体中文、摄氏度
[weatherManager getCurrentWeatherOfCity:[TPCity cityWithName:@"beijing"] 
                             inLanguage:kSimplifiedChinese 
                                   unit:kCelsius 
                             completion:^(TPWeatherNow *weatherNow, NSError *err) {
    if(weatherNow != nil) {
        [self log:weatherNow.text]; //获取天气文本信息,例如“晴”,“多云”
        [self log:weatherNow.windDirection]; //获取当前风向,例如“西北”
        [self log:weather.feelsLikeTemperature]; //获取当前体感温度
    }
}];
天气

天气实况

类:TPWeatherManager

方法:

- (void)getCurrentWeatherOfCity:(TPCity *)city
                     inLanguage:(TPWeatherReportLanguage)language
                           unit:(TPTemperatureUnit)unit
                     completion:(void(^)(TPWeatherNow *weatherNow, NSError *error))completionHandler;

说明:获取指定城市的实况天气。

参数:

city
要查询的地点,详见TPCity
language
返回数据的语言,详见TPWeatherReportLanguage
unit
返回数据的温度单位,详见TPTemperatureUnit
completion
由调用者实现的回调函数, 第一个参数weatherNow包含了所请求的天气信息:
@interface TPWeatherNow : NSObject

//天气现象文字, 例如"多云"
@property (nonatomic, copy) NSString *text;
//天气现象代码,例如"4"
@property (nonatomic, copy) NSString *code;
//温度。单位为c摄氏度或f华氏度。
@property (nonatomic, assign) NSInteger temperature;
//体感温度。单位为c摄氏度或f华氏度。
@property (nonatomic, assign) NSInteger feelsLikeTemperature;
//风向文字, 例如"西北"
@property (nonatomic, copy) NSString *windDirection;
//风向角度。范围0~359, 0为正北,90为正东,180为正南,270为正西。
@property (nonatomic, assign) NSInteger windDirectionDegree;
//风速。单位为km/h公里每小时或mph英里每小时
@property (nonatomic, assign) double windSpeed;
//风力等级
@property (nonatomic, assign) double windScale;
//相对湿度, 范围0~1
@property (nonatomic, assign) double humidity;
//能见度。单位为km公里或mi英里
@property (nonatomic, assign) double visibility;
//气压。单位为mb百帕或in英寸
@property (nonatomic, assign) double pressure;
//云量。天空被云覆盖的面积占比,范围0~1
@property (nonatomic, assign) double clouds;
//露点温度
@property (nonatomic, assign) NSInteger dewPoint;
//数据更新时间
@property (nonatomic, copy)NSDate *lastUpdateDate;
//错误信息
@property (nonatomic, copy)NSString *errorInfo;

@end
当发生错误时,错误信息由第二个参数error返回。

逐日预报和历史

类:TPWeatherManager

方法:

- (void)getDailyWeatherOfCity:(TPCity *)city
                   inLanguage:(TPWeatherReportLanguage)language
                         unit:(TPTemperatureUnit)unit
                     fromDate:(NSDate *)date
                         days:(NSInteger)days
                   completion:(void(^)(NSArray *weatherDailyArray, NSError *error))completionHandler;

说明:获取指定城市未来最多15天的每日白天和夜间预报,以及昨天的历史数据。

参数:

city
要查询的地点,详见TPCity
language
返回数据的语言,详见TPWeatherReportLanguage
unit
返回数据的温度单位,详见TPTemperatureUnit
date
所查询的起始日期
days
所查询的天数
completion
由调用者实现的回调函数, 第一个参数weatherDailyArray是个数组,包含了所请求的天气信息:
interface TPWeatherDaily : NSObject

//日期
@property (nonatomic, copy)NSDate *date;
//白天气象文字,例如"多云"
@property (nonatomic, copy)NSString *textForDay;
//白天气象代码, 例如"4"
@property (nonatomic, copy)NSString *codeForDay;
//夜间气象文字, 例如"多云"
@property (nonatomic, copy)NSString *textForNight;
//夜间气象代码, 例如"4"
@property (nonatomic, copy)NSString *codeForNight;
//当日最高气温
@property (nonatomic, assign)NSInteger highTemperature;
//当日最低气温
@property (nonatomic, assign)NSInteger lowTemperature;
//降水概率,范围 0~1
@property (nonatomic, assign)double chanceOfRain;
//风向文字描述,例如"西北"
@property (nonatomic, copy)NSString *windDirection;
//风向角度, 例如"255", 范围0~359
@property (nonatomic, assign)NSInteger windDirectionDegree;
//风速,单位km/h(当unit=c时)、mph(当unit=f时)
@property (nonatomic, assign)double windSpeed;
//风力等级
@property (nonatomic, assign)double windScale;

@end
当发生错误时,错误信息由第二个参数error返回。

24小时逐小时预报

类:TPWeatherManager

方法:

- (void)getHourlyWeatherOfCity:(TPCity *)city
                    inLanguage:(TPWeatherReportLanguage)language
                          unit:(TPTemperatureUnit)unit
                    hourOffset:(NSInteger)offset
                         hours:(NSInteger)hours
                    completion:(void(^)(NSArray*weatherHourlyArray, NSError *error))completionHandler;

说明:获取指定城市未来最多24小时的逐小时预报。目前仅支持中国城市。

参数:

city
要查询的地点,详见TPCity
language
返回数据的语言,详见TPWeatherReportLanguage
unit
返回数据的温度单位,详见TPTemperatureUnit
offset
所查询的起始其实时间距离现在的小时数,例如0代表这个小时、1代表下个小时
hours
所查询的小时数
completion
由调用者实现的回调函数, 第一个参数weatherHourlyArray是个数组,包含了所请求的天气信息:
@interface TPWeatherHourly : NSObject

//时间
@property (nonatomic, copy)NSDate *date;
//气象文字信息
@property (nonatomic, copy)NSString *text;
//气象代码
@property (nonatomic, copy)NSString *code;
//温度预报
@property (nonatomic, assign)NSInteger temperature;

@end
当发生错误时,错误信息由第二个参数errorInfo返回。

过去24小时天气历史纪录

类:TPWeatherManager

方法:

- (void)getHistoryHourlyWeatherOfCity:(TPCity *)city
                           inLanguage:(TPWeatherReportLanguage)language
                                 unit:(TPTemperatureUnit)unit
                           completion:(void(^)(NSArray*weatherHistoryHourlyArray, NSError *error))completionHandler;

说明:获取指定城市过去24小时逐时的天气历史记录。

参数:

city
要查询的地点,详见TPCity
language
返回数据的语言,详见TPWeatherReportLanguage
unit
返回数据的温度单位,详见TPTemperatureUnit
completion
由调用者实现的回调函数。 第一个参数weatherHistoryHourlyArray包含了所请求的天气信息:
@interface TPWeatherHistoryHourly : NSObject

//天气现象文字
@property(nonatomic, copy)NSString *text;
//天气现象代码
@property(nonatomic, copy)NSString *code;
//温度。单位为c摄氏度或f华氏度
@property(nonatomic, assign)NSInteger temperature;
//体感温度。单位为c摄氏度或f华氏度
@property(nonatomic, assign)NSInteger feelsLikeTemperature;
//气压。单位为mb百帕或in英寸。
@property(nonatomic, assign)double pressure;
//相对湿度。范围0~1
@property(nonatomic, assign)double humidity;
//能见度。单位为km公里或mi英里。
@property(nonatomic, assign)double visibility;
//风向文字
@property(nonatomic, copy)NSString *windDirection;
//风向角度。0为正北,90为正东,180为正南,270为正西。
@property(nonatomic, assign)NSInteger windDirectionDegree;
//风速。单位为km/h公里每小时或mph英里每小时。
@property(nonatomic, assign)double windSpeed;
//风力等级
@property(nonatomic, assign)double windScale;
//云量,天空被云覆盖的范围占比,范围0~1
@property(nonatomic, assign)double clouds;
//露点温度
@property(nonatomic, assign)NSInteger dewPoint;
//数据记录时间
@property(nonatomic, copy)NSDate *date;

@end
当发生错误时,错误信息由第二个参数error返回。

气象灾害预警

类:TPWeatherManager

方法:

- (void)getWeatherAlarmsOfCity:(TPCity *)city
           completion:(void(^)(NSArray* weatherAlarmArray, NSError *error))completionHandler;

说明:获取指定城市的气象灾害预警信息。

参数:

city
要查询的地点,详见TPCity
completion
由调用者实现的回掉函数 第一个参数weatherAlarmArray包含了所请求的天气信息:
@interface TPWeatherAlarm : NSObject

//灾害预警标题,例如"四川省乐山市气象台发布大雾黄色预警"
@property (nonatomic, copy)NSString *title;
//灾害预警类型, 例如"大雾"
@property (nonatomic, copy)NSString *type;
//灾害预警级别,例如"黄色"
@property (nonatomic, copy)NSString *level;
//灾害预警状态, 例如"预警中"
@property (nonatomic, copy)NSString *status;
//文本形式的灾害预警详细内容
@property (nonatomic, copy)NSString *text;
//发布时间
@property (nonatomic, copy)NSDate *publishingDate;

@end
当发生错误时,错误信息由第二个参数error返回。
空气质量

空气质量实况

类:TPWeatherManager

方法:

- (void)getAirQualitiesOfCity:(TPCity *)city
           inLanguage:(TPWeatherReportLanguage)language
           completion:(void(^)(NSArray *airQualities, NSError *error))completionHandler;

说明:获取指定城市的AQI、PM2.5、PM10、一氧化碳、二氧化氮、臭氧等空气质量信息。

参数:

city
要查询的地点,详见TPCity
language
返回数据的语言,详见TPWeatherReportLanguage
listener
由调用者实现的回调函数 第一个参数airQualities是个数组,包含了所请求的空气质量信息
// 空气质量信息来源类型
typedef NS_ENUM(NSInteger, TPAirQualityType)
{
    TPAirQualityTypeCity,   // 整个城市的综合空气质量信息
    TPAirQualityTypeStation // 来自特定空气质量监测点的信息
};

@interface TPAirQuality : NSObject

// 空气质量信息来源类型
@property (nonatomic, assign)TPAirQualityType type;
// 空气质量指数(AQI)是描述空气质量状况的定量指数
@property (nonatomic, assign)double aqi;
// PM2.5颗粒物(粒径小于等于2.5μm)1小时平均值。单位:μg/m³
@property (nonatomic, assign)double pm25;
// PM10颗粒物(粒径小于等于10μm)1小时平均值。单位:μg/m³
@property (nonatomic, assign)double pm10;
// 二氧化硫1小时平均值。单位:μg/m³
@property (nonatomic, assign)double so2;
// 二氧化氮1小时平均值。单位:μg/m³
@property (nonatomic, assign)double no2;
// 一氧化碳1小时平均值。单位:mg/m³
@property (nonatomic, assign)double co;
// 臭氧1小时平均值。单位:μg/m³
@property (nonatomic, assign)double o3;
// 空气质量类别,有“优、良、轻度污染、中度污染、重度污染、严重污染”6类
// 仅当 type==TPAirQualityTypeCity 时有效
@property (nonatomic, copy)NSString *quality;
// 空气质量检测点名称
// 仅当 type==TPAirQualityTypeStation 时有效
@property (nonatomic, copy)NSString *station;
// 数据发布时间
@property (nonatomic, copy)NSDate *lastUpdateDate;

@end
当发生错误时,错误信息由第二个参数error返回。

空气质量实况城市排行

类:TPWeatherManager

方法:

- (void)getAirRankingInLanguage:(TPWeatherReportLanguage) language
          completion:(void(^)(NSArray*airRankingCities, NSError *error))completionHandler;

说明:获取全国城市空气质量AQI排行榜。

参数:

language
返回数据的语言,详见TPWeatherReportLanguage
completion
由调用者实现的回调函数 第一个参数airRankingCities是个数组,包含了所请求的城市排行信息:
@class TPCityInformation;

// 城市空气质量数据
@interface TPAirRankingCity : NSObject

// 城市信息
@property(nonatomic, strong) TPCityInformation *cityInformation;
// aqi数值
@property(nonatomic, assign) double aqi;
@end
当发生错误时,错误信息由第二个参数error返回。

逐日空气质量预报

类:TPWeatherManager

方法:

- (void)getAirDailyOfCity:(TPCity *)city
               inLanguage:(TPWeatherReportLanguage) language
                     days:(NSInteger)days
               completion:(void(^)(NSArray*airDailyArray, NSError *error))completionHandler;

说明:获取指定城市未来最多7天的每日AQI预报。

参数:

city
要查询的地点,详见TPCity
language
返回数据的语言,详见TPWeatherReportLanguage
days
获取空气质量预报的总天数,从当天算起
completion
由调用者实现的回调函数 第一个参数airDailyArray是个数组,包含了所请求的空气质量信息:
@interface TPAirDaily : NSObject

// 空气质量指数(AQI)是描述空气质量状况的定量指数
@property (nonatomic, assign)double aqi;
// PM2.5颗粒物(粒径小于等于2.5μm)1小时平均值。单位:μg/m³
@property (nonatomic, assign)double pm25;
// PM10颗粒物(粒径小于等于10μm)1小时平均值。单位:μg/m³
@property (nonatomic, assign)double pm10;
// 二氧化硫1小时平均值。单位:μg/m³
@property (nonatomic, assign)double so2;
// 二氧化氮1小时平均值。单位:μg/m³
@property (nonatomic, assign)double no2;
// 一氧化碳1小时平均值。单位:mg/m³
@property (nonatomic, assign)double co;
// 臭氧1小时平均值。单位:μg/m³
@property (nonatomic, assign)double o3;
// 空气质量类别,有“优、良、轻度污染、中度污染、重度污染、严重污染”6类
@property (nonatomic, copy)NSString *quality;
// 对应日期
@property (nonatomic, copy)NSDate *date;

@end
当发生错误时,错误信息由第二个参数errorInfo返回。

逐小时空气质量预报

类:TPWeatherManager

方法:

- (void)getAirHourlyOfCity:(TPCity *)city
                inLanguage:(TPWeatherReportLanguage) language
                      days:(NSInteger)days
                completion:(void(^)(NSArray*airHourlyArray, NSError *error))completionHandler;

说明:获取指定城市未来最多7天的每小时AQI预报。

参数:

city
要查询的地点,详见TPCity
language
返回数据的语言,详见TPWeatherReportLanguage
days
获取空气质量预报的总天数,从当天算起
completion
由调用者实现的回调函数。 第一个参数airHourlyArray是个数组,包含了所请求的空气质量信息:
@interface TPAirHourly : NSObject

// 空气质量指数(AQI)是描述空气质量状况的定量指数
@property (nonatomic, assign)double aqi;
// PM2.5颗粒物(粒径小于等于2.5μm)1小时平均值。单位:μg/m³
@property (nonatomic, assign)double pm25;
// PM10颗粒物(粒径小于等于10μm)1小时平均值。单位:μg/m³
@property (nonatomic, assign)double pm10;
// 二氧化硫1小时平均值。单位:μg/m³
@property (nonatomic, assign)double so2;
// 二氧化氮1小时平均值。单位:μg/m³
@property (nonatomic, assign)double no2;
// 一氧化碳1小时平均值。单位:mg/m³
@property (nonatomic, assign)double co;
// 臭氧1小时平均值。单位:μg/m³
@property (nonatomic, assign)double o3;
// 空气质量类别,有“优、良、轻度污染、中度污染、重度污染、严重污染”6类
@property (nonatomic, copy)NSString *quality;
// 对应预报时间
@property (nonatomic, copy)NSDate *time;

@end
当发生错误时,错误信息由第二个参数error返回。
生活

生活指数

类:TPWeatherManager

方法:

- (void)getLifeSuggestionOfCity:(TPCity *)city
                     inLanguage:(TPWeatherReportLanguage)language
                     completion:(void(^)(TPLifeSuggestion *lifeSuggestion, NSError *error))completionHandler;

说明:获取指定城市的基本、交通、生活、运动、健康5大类共27项生活指数。目前仅支持中国城市。

参数:

city
要查询的地点,详见TPCity
language
返回数据的语言,详见TPWeatherReportLanguage
completionHandler
由调用者实现的回调函数。 第一个参数lifeSuggestion包含了所请求的天气信息:
//某项生活指数的描述信息或生活建议
@interface TPLifeSuggestionItem : NSObject

@property(nonatomic, copy)NSString *brief; //简要建议, 例如"不太适宜"
@property(nonatomic, copy)NSString *details;  //详细建议, 例如"您将感到很舒适,一般不需要开启空调。"

+ (instancetype)lifeSuggestionItemWithBrief:(NSString *)brief details:(NSString *)details;
@end

//包含特定城市的所有生活指数信息
@interface TPLifeSuggestion : NSObject

//空调开启建议
@property(nonatomic, strong)TPLifeSuggestionItem *airCondition;
//空气污染扩散条件
@property(nonatomic, strong)TPLifeSuggestionItem *airPollution;
//晾晒
@property(nonatomic, strong)TPLifeSuggestionItem *airing;
//过敏
@property(nonatomic, strong)TPLifeSuggestionItem *allergy;
//啤酒
@property(nonatomic, strong)TPLifeSuggestionItem *beer;
//划船
@property(nonatomic, strong)TPLifeSuggestionItem *boating;
//洗车
@property(nonatomic, strong)TPLifeSuggestionItem *carWashing;
//风寒
@property(nonatomic, strong)TPLifeSuggestionItem *chill;
//舒适度
@property(nonatomic, strong)TPLifeSuggestionItem *comfort;
//约会
@property(nonatomic, strong)TPLifeSuggestionItem *dating;
//穿衣
@property(nonatomic, strong)TPLifeSuggestionItem *dressing;
//钓鱼
@property(nonatomic, strong)TPLifeSuggestionItem *fishing;
//感冒
@property(nonatomic, strong)TPLifeSuggestionItem *flu;
//美发
@property(nonatomic, strong)TPLifeSuggestionItem *hairDressing;
//放风筝
@property(nonatomic, strong)TPLifeSuggestionItem *kiteflying;
//化妆
@property(nonatomic, strong)TPLifeSuggestionItem *makeup;
//心情
@property(nonatomic, strong)TPLifeSuggestionItem *mood;
//晨练
@property(nonatomic, strong)TPLifeSuggestionItem *morningSport;
//夜生活
@property(nonatomic, strong)TPLifeSuggestionItem *nightLife;
//路况
@property(nonatomic, strong)TPLifeSuggestionItem *roadCondition;
//购物
@property(nonatomic, strong)TPLifeSuggestionItem *shopping;
//运动
@property(nonatomic, strong)TPLifeSuggestionItem *sport;
//防晒
@property(nonatomic, strong)TPLifeSuggestionItem *sunscreen;
//交通
@property(nonatomic, strong)TPLifeSuggestionItem *traffic;
//旅游
@property(nonatomic, strong)TPLifeSuggestionItem *travel;
//雨伞
@property(nonatomic, strong)TPLifeSuggestionItem *umbrella;
//紫外线
@property(nonatomic, strong)TPLifeSuggestionItem *ultraviolet;
//数据更新时间
@property(nonatomic, copy)NSDate *lastUpdateDate;

@end
当发生错误时,错误信息由第二个参数error返回。

农历、节气、生肖

类:TPWeatherManager

方法:

- (void)getChineseCalendarDateOfCity:(TPCity *)city
              inLanguage:(TPWeatherReportLanguage)language
               startDate:(NSDate *)date
                    days:(NSInteger)days
              completion:(void(^)(NSArray*chineseCalendarDateArray, NSError *error))completionHandler;

说明:查询任何一个公历日期对应的农历日期、农历传统节假日、二十四节气、天干地支纪年纪月纪日、及生肖属相。

参数:

city
要查询的地点,详见TPCity
language
返回数据的语言,详见TPWeatherReportLanguage
date
查询的起始日期
days
查询的天数
completionHandler
由调用者实现的回调函数。 第一个参数chineseCalendarDateArray是个数组,包含了所请求的农历节气信息:
@interface TPChineseCalendarDate : NSObject

//公历日期
@property(nonatomic, copy)NSDate *date;
//生肖属相, 例如"蛇"
@property(nonatomic, copy)NSString *zodiac;
//干支纪年, 例如"癸巳"
@property(nonatomic, copy)NSString *ganzhiYear;
//干支纪月, 例如"乙丑"
@property(nonatomic, copy)NSString *ganzhiMonth;
//干支纪日, 例如"壬寅"
@property(nonatomic, copy)NSString *ganzhiDay;
//农历年, 例如"2015"
@property(nonatomic, copy)NSString *lunarYear;
//农历月(1-13,当有闰月时,比如2014年闰9月,则10表示闰9月,11表示10月)
@property(nonatomic, copy)NSString *lunarMonth;
//农历日, 例如"1"
@property(nonatomic, copy)NSString *lunarDay;
//农历月中文名, 例如"正月"
@property(nonatomic, copy)NSString *lunarMonthName;
//农历日中文名, 例如"初一"
@property(nonatomic, copy)NSString *lunarDayName;
//农历闰月所在月份,例如"9", 0表示无闰月
@property(nonatomic, copy)NSString *lunarLeapMonth;
//农历节假日,如:春节、端午、中秋等
@property(nonatomic, copy)NSString *lunarFestival;
//二十四节气名,如:冬至、小寒、大寒、立春等
@property(nonatomic, copy)NSString *solarTerm;

@end
当发生错误时,错误信息由第二个参数error返回。

机动车尾号限行

类:TPWeatherManager

方法:

- (void)getDrivingRestrictionOfCity:(TPCity *)city
                    completion:(void(^)(TPDrivingRestriction * drivingRestriction, NSError *error))completionHandler;

说明:查询北京、天津、哈尔滨、成都、杭州、贵阳、长春、兰州8个城市的今天、明天和后天的机动车尾号限行数据。

参数:

city
要查询的地点,详见TPCity
completionHandler
由调用者实现的回调函数。 第一个参数drivingRestriction包含了所请求的交通请求信息:
// 单日尾号限行数据
@interface TPDrivingRestrictionItem : NSObject
// 限行日期
@property(nonatomic, copy)NSDate *date;
// 限行尾号数组
@property(nonatomic, strong)NSArray *plates;
// 限行备注
@property(nonatomic, copy)NSString *memo;

@end

// 交通限行数据
@interface TPDrivingRestriction : NSObject
// 处罚规定
@property(nonatomic, copy)NSString *penalty;
// 限行区域
@property(nonatomic, copy)NSString *region;
// 详细说明
@property(nonatomic, copy)NSString *remarks;
// 尾号限行数组
@property(nonatomic, strong)NSArray *restrictionItems;
@end
当发生错误时,错误信息由第二个参数errorInfo返回。
地理

日出日落

类:TPWeatherManager

方法:

- (void)getSunInformationOfCity:(TPCity *)city
                     inLanguage:(TPWeatherReportLanguage)language
                      startDate:(NSDate *)date
                           days:(NSInteger)days
                     completion:(void(^)(NSArray*sunInformationArray, NSError *error))completionHandler;

说明:查询全球城市每天日出日落时间。

参数:

city
要查询的地点,详见TPCity
language
返回数据的语言,详见TPWeatherReportLanguage
date
查询的开始日期
days 查询的天数
completionHandler
由调用者实现的回调函数。 第一个参数sunInformationArray是一个数组,包含了所请求的日出日落信息:
interface TPSunInformation : NSObject

//日出时间
@property (nonatomic, copy)NSDate *sunriseDate;
//日落时间
@property (nonatomic, copy)NSDate *sunsetDate;

@end
当发生错误时,错误信息由第二个参数error返回。

月升月落和月相

类:TPWeatherManager

方法:

- (void)getMoonInformationOfCity:(TPCity *)city
                      inLanguage:(TPWeatherReportLanguage)language
                       startDate:(NSDate *)date
                            days:(NSInteger)days
                      completion:(void(^)(NSArray*moonInformationArray, NSError *error))completionHandler;

说明:查询全球城市每天月出月落时间和月相。

参数:

city
要查询的地点,详见TPCity
language
返回数据的语言,详见TPWeatherReportLanguage
date
查询的开始日期
days 查询的天数
completionHandler
由调用者实现的回调函数。 第一个参数moonInformationArray是一个数组,包含了所请求的日出日落信息:
@interface TPMoonInformation : NSObject

//月出时间
@property (nonatomic, copy)NSDate *moonriseDate;
//月落时间
@property (nonatomic, copy)NSDate *moonsetDate;
//月球被照明部分比例(0~1)
@property (nonatomic, assign)double fraction;
//月相(0~1)
@property (nonatomic, assign)double phase;
//月相名称,例如"蛾眉月"
@property (nonatomic, copy)NSString *phaseName;

@end
当发生错误时,错误信息由第二个参数error返回。
位置

类:TPWeatherManager

方法:

- (void)getCityInformationOfCity:(TPCity *)city
                  inLanguage:(TPWeatherReportLanguage)language
                       limit:(NSInteger)limit
                      offset:(NSInteger)offset
                  completion:(void(^)(NSArray*cityInformationArray, NSError *error))completionHandler;

说明:根据城市ID、中文、英文、拼音、IP、经纬度搜索匹配的城市。

参数:

city
要查询的地点,详见TPCity
language
返回数据的语言,详见TPWeatherReportLanguage
limit
当符合条件的搜索结果较多时可以分页返回,这个参数指定分页每页最多记录数
offset
分页初始位置跳过的记录数
listener
由调用者实现的回调函数。 第一个参数cityInformationArray是一个数组,包含了所请求的城市信息:
@interface TPCityInformation : NSObject

//城市唯一ID, 例如"WX4EQ2XJD7V2"
@property (nonatomic, copy)NSString *cityid;
//城市名称
@property (nonatomic, copy)NSString *name;
//国家代码, 例如"CN"
@property (nonatomic, copy)NSString *countryCode;
//隶属层级,从小到大, 例如"海淀,北京,中国"
@property (nonatomic, copy)NSString *affiliations;
//IANA标准时区名称(该名称不受夏令时影响), 例如"Asia/Shanghai"
@property (nonatomic, copy)NSString *timezone;
//相对于UTC时区的偏移量(采用夏令时的城市会因夏令时而变化), 例如"+08:00"
@property (nonatomic, copy)NSString *timezoneOffset;

@end
当发生错误时,错误信息由第二个参数error返回。
对象

TPCity

说明:

指定一个要查询的城市,通常用来作为函数的参数。

构造方法:

使用城市名创建一个TPCity对象:

+ (TPCity *)cityWithName:(NSString *)name;

使用城市ID创建一个TPCity对象:

+ (TPCity *)cityWithID:(NSString *)cityid;

使用地理坐标创建一个TPCity对象:

+ (TPCity *)cityWithCLLocation:(CLLocation *)location;

使用IP地址创建一个TPCity对象:

+ (TPCity *)cityWithIPAddress:(NSString *)ipAddress;

创建一个自动识别地址的TPCity对象:

+ (TPCity *)cityWithAutoRecognization;

TPWeatherReportLanguage

说明:

枚举类型,指定返回的气象数据使用的语言,通常作为函数的参数。

定义:

typedef NS_ENUM(NSInteger, TPWeatherReportLanguage)
{
    kEnglish,               //英文
    kSimplifiedChinese,     //简体中文
    kTraditionalChinese     //繁体中文
};

TPTemperatureUnit

说明:

枚举类型,指定返回的气象数据使用的温度单位,通常作为函数的参数。

定义:

typedef NS_ENUM(NSInteger, TPTemperatureUnit)
{
    kCelsius,               // 温度:c(摄氏度), 风速: km/h(千米/小时), 能见度:km(千米), 气压:mb(百帕)
    kFahrenheit             // 温度:f(华氏度), 风速: mph(英里/小时), 能见度:mi(英里), 气压:in(英寸)
};