學習HM微博項目第11天

步驟: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框架,集成下拉刷新控件和上拉刷新控件
集成下拉刷新控件
集成上拉刷新控件
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容