對呀新入行的人來說,自己還沒有能力去寫框架,并且自己也沒有去封裝這個(gè)能力,那我們最好的解決方法就是借用第三方框架,但是很多,比如說刷新,或者菊花,或者網(wǎng)絡(luò)嗎,我們該該如何用呢,好吧,先簡單的寫幾個(gè)
1、AFNetworking-master 是用于數(shù)據(jù)請求的
用法:
// 1.創(chuàng)建請求管理對象
AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
// 2.封裝請求參數(shù)
NSMutableDictionary *params = [NSMutableDictionary dictionary];
params[@"access_token"] = [IWAccountTool account].access_token;
// 3.發(fā)送請求
[mgr GET:@"https://api.weibo.com/2/statuses/home_timeline.json" parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
2、MBProgressHUD 是一個(gè)process的,就是轉(zhuǎn)圈,簡稱菊花
用法
[MBProgressHUD showMessage:@"哥正在幫你菊花中..."];
3、MJExtention 是kvc 的一個(gè)工具,字典轉(zhuǎn)模型 ,kvc的缺點(diǎn)就是 字典轉(zhuǎn)模型的時(shí)候,模型數(shù)據(jù)必須與字典一一對應(yīng),不對應(yīng)的話就會出問題,實(shí)際上有的時(shí)候服務(wù)器傳的值客戶端有的是不用的,那么就會出現(xiàn)一些問題,
MJExtention就解決了這個(gè)問題, 這個(gè)框架遍歷了 模型數(shù)據(jù)中的 屬性, 如果有屬性則轉(zhuǎn)賦值,沒有就不管, MJExtention 中 封裝的是object,所以任何的對象都可以用 封裝中的方法
// 將字典數(shù)組轉(zhuǎn)為模型數(shù)組(里面放的就是IWStatus模型),這里只舉一個(gè)栗子
NSArray *statusArray = [IWStatus objectArrayWithKeyValuesArray:responseObject[@"statuses"]];
SDWebImage-master? 框架是專門處理圖片的
我們在請求網(wǎng)絡(luò)上的圖片時(shí),容易出現(xiàn)一些問題,1、在主線程請求圖片啦 2、請求圖片返回的時(shí)候item已經(jīng)變了也可以說position從0變到顯示條目+1的位置了,或者說已經(jīng)回收了,這樣容易出現(xiàn)圖片一閃閃,3、圖片請求的時(shí)候由于在手機(jī)端流量受限,所以說我們需要緩存圖片,緩存圖片空間的管理等等。。。。。
SDWebImage-master 這些問題都替我們搞定了
[self.iconView setImageWithURL:[NSURL URLWithString:@"http://xxxxxxxxxxxxx.jpg"] placeholderImage:[UIImage imageWithName:@"avatar_default_small"]];