get和post請求的區(qū)別
1、安全性問題
a. get請求的參數(shù)全部暴露在接口中或網(wǎng)址中推姻,且參數(shù)以明文的形式出現(xiàn)靶擦,這個請求方式一般叫做文明請求或者傻瓜式請求托修。
b. post請求的參數(shù)一般是以字典的方式進行拼接醉旦,參數(shù)在請求數(shù)據(jù)區(qū)存放著饶米,相對于get比較安全桨啃。
2、對文件大小的要求
get請求一般情況下不允許向服務(wù)器上傳文件(圖片文件檬输、pdf文件照瘾、音視頻文件),get請求在提交時丧慈,傳輸數(shù)據(jù)會受到URL長度的限制析命。
一般情況下使用post請求來進行文件的上傳操作,post請求不是通過url傳值伊滋,理論上數(shù)據(jù)不受到限制碳却。
3.總結(jié)
如果從服務(wù)器獲取數(shù)據(jù)或者查詢數(shù)據(jù)使用get請求队秩,如果上傳數(shù)據(jù)到服務(wù)器或者修改服務(wù)器上數(shù)據(jù)使用post請求
SDWebImage的實現(xiàn)原理
SDWebImage是用來加載網(wǎng)絡(luò)圖片的第三方庫笑旺,實現(xiàn)了異步請求數(shù)據(jù),并且實現(xiàn)了圖片的緩存馍资。
SDWebImage的實現(xiàn)原理:在內(nèi)存和沙盒目錄下各緩存一份文件筒主,內(nèi)存中的文件到一定程度會自動清除,沙盒目錄下的文件需要由用戶手動清除鸟蟹。
首先檢測內(nèi)存(自動清除緩存文件)--->然后檢測沙盒目錄乌妙,如果沙盒目錄下有緩存文件,需要手動清除--->最后進行網(wǎng)絡(luò)請求
AFNetworking的實現(xiàn)原理
AFNetworking是實際項目中最常用的網(wǎng)絡(luò)請求庫建钥,目前在github下載量排名第一藤韵,對應(yīng)的版本最新的為3.0。2.0版本以前封裝自系統(tǒng)的NSURLConnection熊经,3.0之后(ios9)封裝自系統(tǒng)的NSURLSession泽艘,還可以用于檢測網(wǎng)絡(luò)狀態(tài),緩存圖片镐依。
AFNetworking支持比較新的特性匹涮,簡單易用,但文檔數(shù)目一般槐壳,功能少然低,忽略了一些擴展功能。
AFNetworking實現(xiàn)原理:AFNetworking直接操作對象的AFHttpClient务唐,是一個實現(xiàn)了NSCoding和NSCopying協(xié)議的NSObject子類雳攘,AFNetworking默認沒有封裝同步請求,如果開發(fā)者需要使用同步請求枫笛,則需要重寫getPath: paramenters: success: failures方法来农,對AFHttpRequestOperation進行同步處理。
KVO和KVC
KVO
KVO:鍵值觀察機制崇堰,是一種能使對象獲取到其他對象屬性變化的通知機制沃于,KVO可以觀察某個對象的變量變化過程涩咖。
優(yōu)點:
a、能夠提供一種簡單的方法實現(xiàn)兩個對象間的同步
b繁莹、能夠?qū)Ψ俏覀儎?chuàng)建的對象檩互,即內(nèi)部對象的狀態(tài)改變做出響應(yīng),而不要改變內(nèi)部對象的實現(xiàn)
c咨演、能夠提供觀察的屬性的最新值以及先前值
d闸昨、用key paths來觀察屬性,因此也可以觀察嵌套對象
e薄风、完成了對觀察對象的抽象饵较,因為不需要二維的代碼來允許觀察值能夠被觀察缺點:
a、觀察的屬性必須使用strings來定義遭赂,隱藏編譯器不會出現(xiàn)警告和檢查
b循诉、對屬性重構(gòu)將導(dǎo)致觀察代碼不再可用
c、復(fù)雜的“if”語句要求對象正在觀察多個值撇他,這是因為所有的觀察都通過一個方法來指向
d茄猫、當(dāng)釋放觀察者時不需要移除觀察者
KVC
KVC:鍵-值編碼,是一個用于間接訪問對象屬性的機制(一種使用字符串而不是訪問器去訪問一個對象實例變量的機制)困肩,只用該機制不需要調(diào)用set或get方法??以及->來訪問成員變量划纽,它通過setValue: forKey 和valueForkey方法來訪問。
優(yōu)點:
a锌畸、主要的好處就是減少代碼量
b勇劣、沒有property的變量也能通過KVC來設(shè)置缺點:
如果key寫錯,編寫時不會報錯潭枣,運行時會報錯注意:KVC不是設(shè)計模式