步驟: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框架,集成下拉刷新控件和上拉刷新控件
集成下拉刷新控件
集成上拉刷新控件