学习HM微博项目第11天

2015-10-08  本文已影响96人  dibadalu

步骤: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请求的使用实例
导入MJRefresh框架,集成下拉刷新控件和上拉刷新控件
集成下拉刷新控件 集成上拉刷新控件
上一篇 下一篇

猜你喜欢

热点阅读