第三方框架
1.常用第三方的底層實(shí)現(xiàn)原理(SDWebImage ?AFNetworking ?EGORefresh)
其實(shí)是有沙盒緩存機(jī)制,主要由三塊組成
1.內(nèi)存圖片緩存
2.內(nèi)存操作緩存
3.磁盤沙盒緩存
4.列舉一下常用的第三方框架
答:我在做開發(fā)的過程中曾經(jīng)用過以下第三方框架:
(1)AFNetworking網(wǎng)絡(luò)請(qǐng)求庫
(2)SDWebImage網(wǎng)絡(luò)圖片加載
(3)FMDB數(shù)據(jù)庫
(4)Masonry自動(dòng)布局
(5)UmengSDK/Share SDK分享
(6)融云/環(huán)信 ?即時(shí)通信
(7)ZBar/ZXing二維碼掃描和生成
(8)MBProgressHUD風(fēng)火輪
(9)GTMBase64 ?base64編碼解碼
(10)MJRefresh下拉刷新靠柑,上拉加載
(11)百度/高德地圖SDK
5.MJRefresh原理
答:給UISCrollView添加了分類狡相,在分類中茶袒,根據(jù)scrollView的contentOffset進(jìn)行判斷方向和偏移量溯壶,當(dāng)偏移量到某一個(gè)臨界值的時(shí)候,開始切換header或者footer的狀態(tài)圃郊,以呈現(xiàn)不同的UI价涝,當(dāng)偏移量大于臨界值并松開手的時(shí)候,執(zhí)行block回調(diào)或者target..action的方法,主要在block或者target..action中進(jìn)行網(wǎng)絡(luò)請(qǐng)求,請(qǐng)求結(jié)束后描沟,調(diào)用endRefresh方法飒泻,再次更改header或者footer的狀態(tài)鞭光,使他們回到初始狀態(tài)
關(guān)于常用的手碼約束的第三方框架
有Masonry和UIView+Autolayout
框架地址是:
https://github.com/Masonry/Masonry
https://github.com/smileyborg/UIView-AutoLayout
UIView+Autolayout框架
這個(gè)相對(duì)于masonry吏廉,是個(gè)輕量級(jí)的框架易于上手,里面一共也就兩個(gè)文件惰许。也非常好用席覆,都是用auto開頭。適用于約束不經(jīng)常改變的項(xiàng)目
Masonry框架
這個(gè)框架是重量級(jí)的里面好多文件汹买,難于上手佩伤,但是用熟練了的話比上面那個(gè)牛X聊倔,適合于約束要經(jīng)常改變的項(xiàng)目。
寫出常用的第三方框架
Reachability檢測網(wǎng)絡(luò)連接用來檢查網(wǎng)絡(luò)連接是否可用:包括WIFI和WWAN(3G/EDGE/CDMA等)兩種工作模式生巡。
MBProgressHUD提示效果 ? ?支持各種狀態(tài)加載的提示效果耙蔑,以及帶進(jìn)度的提示效果。
SDWebImage圖片異步加載及緩存SDWebImage用于異步下載網(wǎng)絡(luò)上的圖片孤荣,并支持對(duì)圖片的緩存等甸陌。
XMPP現(xiàn)在做個(gè)實(shí)時(shí)聊天,XMPP協(xié)議算是很成熟的方案了盐股。XMPPFramework一個(gè)很不錯(cuò)的選擇钱豁,可以直接和OpenFire服務(wù)器打交道。
AFNetworking網(wǎng)絡(luò)請(qǐng)求
FMDB數(shù)據(jù)庫
Masonry純代碼添加約束
iOS知名第三方框架和流行APP們所用的第三方框架小結(jié)
http://www.mamicode.com/info-detail-935799.html
6)不使用第三方,如何做下拉刷新,加載
UITableView本身是一個(gè)UIScrollView疯汁,所以UITableView可以實(shí)現(xiàn)UIScrollView的代理方法牲尺。上拉和下拉刷新無非是UIScrollView偏移到一定程度調(diào)用刷新方法。 實(shí)現(xiàn)- (void)scrollViewDidScroll:(UIScrollView*)scrollView代理方法即可幌蚊。
http://www.open-open.com/lib/view/open1390609384992.html
http://doc.okbase.net/ZeroHour/archive/119346.html
UITableView是繼承scrollview的谤碳,當(dāng)你下拉結(jié)束的時(shí)候會(huì)走scrollview的回調(diào),scrollViewDidEndDragging溢豆,然后在這個(gè)回調(diào)中估蹄,可以判斷是否達(dá)到下拉的位置,然后做你該做的處理沫换,比如刷新列表臭蚁,加載數(shù)據(jù)等等
23.AFNetworking內(nèi)部實(shí)現(xiàn)原理
http://www.th7.cn/Program/IOS/201503/405717.shtml
40.AFNetworking新版本和以前版本的區(qū)別,NSURLSession使用
(1)NSURLConnection的API已廢棄
棄用的類
下面的類已從AFNetworking 3.0中廢棄:
?AFURLConnectionOperation
?AFHTTPRequestOperation
?AFHTTPRequestOperationManager
修改的類
下面的類包含基于NSURLConnection的API的內(nèi)部實(shí)現(xiàn)讯赏。他們已經(jīng)被使用NSURLSession重構(gòu):
?UIImageView+AFNetworking
?UIWebView+AFNetworking
?UIButton+AFNetworking
(2)AFHTTPRequestOperation核心代碼
與NSURLConnection對(duì)象不同垮兑,每個(gè)共享應(yīng)用范圍的設(shè)置如會(huì)話管理、緩存策略漱挎、Cookie存儲(chǔ)以及URL協(xié)議等系枪,這些NSURLSession對(duì)象都可以單獨(dú)進(jìn)行配置。使用特定的配置來初始化會(huì)話磕谅,它可以發(fā)送任務(wù)來獲取數(shù)據(jù)私爷,并上傳或下載文件。
在AFNetworking 2.0中膊夹,使用AFHTTPRequestOperation衬浑,有可能創(chuàng)建一個(gè)沒有額外開銷的獨(dú)立的網(wǎng)絡(luò)請(qǐng)求來獲取數(shù)據(jù)。NSURLSession則需要更多的開銷放刨,為了獲得所要請(qǐng)求的數(shù)據(jù)工秩。
(3)UIKit的遷移
圖片下載已經(jīng)被重構(gòu),以遵循AlamofireImage架構(gòu)與新的AFImageDownloader類。這個(gè)類的圖片下載職責(zé)的代理人是UIButton與UIImageView的類目助币,并且提供了一些方法浪听,在必要時(shí)可以自定義。類別中眉菱,下載遠(yuǎn)程圖片的實(shí)際方法沒有改變迹栓。
UIWebView的類目被重構(gòu)為使用AFHTTPSessionManager作為其網(wǎng)絡(luò)請(qǐng)求。
UIAlertView的類目被廢棄
從AFNetworking 3.0后UIAlertView的類目因過時(shí)而被廢棄俭缓。并沒有提供UIAlertController類目的計(jì)劃迈螟,因?yàn)檫@是應(yīng)用程序應(yīng)處理的邏輯,而不是這個(gè)庫尔崔。