步骤:HM微博55-const的使用 -> HM微博56-重构
HM微博55-const的使用
Effective Objective-C 2.0的第4条 : 多用类型常量,少用#define预处理指令,其中关于全局常量的要点是:在头文件中使用extern来声明全局常量,并在相关实现文件中定义其值。这种常量要出现在全局符号表中,所以其名称应加以区隔,通常用与之相关的类名做前缀。 新建一个HMConst类,如下: 头文件HMConst.h 实现文件HMConst.m由于这个类要经常使用到,将其导入pch文件中。(ps:从xcode6.0和iOS8之后,苹果官方已经不建议使用pch文件)
pch的详细代码如下:
pch文件HM微博56-重构
将前面使用到AFN框架封装到工具类,只提供get和post请求给外界使用即可。
/* 头文件HMHttpTool.h */
#import <Foundation/Foundation.h>
@interface HMHttpTool : NSObject
+ (void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id json))success failure:(void (^)(NSError *error))failure;
+ (void)post:(NSString *)url params:(NSDictionary *)params success:(void (^)(id json))success failure:(void (^)(NSError *error))failure;
@end
/* 实现文件HMHttpTool.m */
#import "HMHttpTool.h"
#import "AFNetworking.h"
@implementation HMHttpTool
+ (void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id json))success failure:(void (^)(NSError *error))failure
{
//1.创建请求管理者
AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
//2.发送请求
[mgr GET:url parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
if (success) {
success(responseObject);
}
} failure:^(NSURLSessionDataTask *task, NSError *error) {
if (failure) {
failure(error);
}
}];
}
+ (void)post:(NSString *)url params:(NSDictionary *)params success:(void (^)(id json))success failure:(void (^)(NSError *error))failure
{
//1.创建请求管理者
AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
//2.发送请求
[mgr POST:url parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
if (success) {
success(responseObject);
}
} failure:^(NSURLSessionDataTask *task, NSError *error) {
if (failure) {
failure(error);
}
}];
}
@end
然后,对使用网络请求的类进行修改,如HMOAuthViewController、HMHomeViewController,如下:
HMOAuthViewController,post请求的使用实例 HMHomeViewController,get请求的使用实例
网友评论