iOS | 面試知識整理 - 三方框架 (十)

前言:

最近公司項(xiàng)目不怎么忙, 閑暇時間把iOS 在面試中可能會遇到的問題整理了一番, 一部分題目是自己面試遇到的,一部分題目則是網(wǎng)上收錄的, 方便自己鞏固復(fù)習(xí), 也分享給大家! 知識點(diǎn)比較多,比較雜,這里做了分類,下面是分類鏈接地址;

面試知識點(diǎn)整理 - 目錄:

iOS | 面試知識整理 - OC基礎(chǔ) (一)
iOS | 面試知識整理 - OC基礎(chǔ) (二)
iOS | 面試知識整理 - OC底層 (三)
iOS | 面試知識整理 - UI 相 關(guān) (四)
iOS | 面試知識整理 - 內(nèi)存管理 (五)
iOS | 面試知識整理 - 多 線 程 (六)
iOS | 面試知識整理 - 網(wǎng)絡(luò)相關(guān) (七)
iOS | 面試知識整理 - 數(shù)據(jù)持久化 (八)
iOS | 面試知識整理 - Swift 基礎(chǔ) (九)
iOS | 面試知識整理 - 三方框架 (十)

iOS | 面試知識整理 - 三方框架 (十)

1.列舉現(xiàn)在熟悉 iOS開發(fā)庫和第三方開發(fā)庫?

iOS開發(fā)中第三方框架非常豐富,種類和數(shù)量也繁多,所謂框架就是對每一類功能的封裝,作為快捷的使用開發(fā)工具,提升開發(fā)效率

OC 常用的三方庫如下:

框架名稱 描述
AFNetworking 網(wǎng)絡(luò)請求
SDWebImage 圖像異步加載
MJRefresh 上啦下拉刷新
MJExtension 數(shù)據(jù)解析
MBProgressHUD 進(jìn)度顯示組件
FMDB SQLite的封裝數(shù)據(jù)庫
Masonry 自動布局
Charts 圖標(biāo)繪制庫
CocoaAsyncSocket 異步 Socket 網(wǎng)絡(luò)編程框架
AsyncDisplayKit 異步UI 加載庫
Aspects 面向切面編程庫
CocoaLumberjack 簡單高效快速靈活登錄模塊框架
DZNEmptyDataSet 空列表UI庫,列表為空時友好展示庫
FSCalendar 日歷控件庫
JazzHands 應(yīng)用滑動引導(dǎo)頁頁動畫庫
JSPatch 熱更新
AvoidCrash 容錯處理框架
Bludy 錯誤收集

Swift比較常用庫

框架名稱 描述
SnapKit 自動布局
Alamofire 網(wǎng)絡(luò)請求
Kingfisher 異步圖片加載庫
KakaJSON 數(shù)據(jù)解析
PKHUD 進(jìn)度顯示組件
SwiftyJSON 轉(zhuǎn)JSON庫

2. SDWebImage加載原理?

  1. 當(dāng)我們的UIImageView控件調(diào)用sd_setImageWithURL: ()...方法 來進(jìn)行加載圖片泉唁;
  2. 框架會直接調(diào)用 UIView+WebCache中的sd_internalSetImageWithURL:() ..., 該方法是UIImageViewUIButton 的共有拓展方法
  3. 接下來調(diào)用SDWebImageManager類中的loadImageWithURL:() ...方法焕阿,會根據(jù)提供的圖片URL 加載圖片蟹倾,SDWebImageManager 主要負(fù)責(zé)管理SDImageCache緩存和SDWebImageDownloader下載器
  4. 首先進(jìn)入 SDImageCache類敌蚜,調(diào)用 queryCacheOperationForKey...在內(nèi)存或者磁盤進(jìn)行查詢荆残,如果有圖片緩存則進(jìn)行回調(diào)展示邢疙, 如果沒有查詢到圖片緩存肮柜,則進(jìn)行下一步下載
  5. 在未查詢到圖片緩存時陷舅, SDWebImageDownloader類會進(jìn)行網(wǎng)絡(luò)下載,下載成功后進(jìn)行回調(diào)展示审洞,并將下載的圖片緩存到內(nèi)存和磁盤

總結(jié):
根據(jù)Url內(nèi)存中查詢圖片莱睁,如果有則展示,沒有則在磁盤查詢圖片芒澜,查詢到展示仰剿, 沒有查詢到在會通過網(wǎng)絡(luò)下載進(jìn)行展示。下載完后會存儲到內(nèi)存和磁盤痴晦,方便下次直接使用南吮,磁盤查詢和網(wǎng)絡(luò)下載都是異步的,不會影響主線程.

3 .SDWebImage框架的架構(gòu)是怎么樣的?

SDWebImage 有三個核心組件:

  • SDWebImageManager: 核心管理器
  • SDImageCache: 緩存處理組件,主要負(fù)責(zé)內(nèi)存緩存以及磁盤緩存
  • SDImageDownloader: 下載處理組件,負(fù)責(zé)異步下載圖片等操作

4. SDWebImage 圖片名稱是如何處理?

  • 拿到圖片對應(yīng)的URL路徑誊酌,對該路徑進(jìn)行MD5加密,作為名稱進(jìn)行保存

5. SDWebImage的最大并發(fā)數(shù)是多少部凑?

_downloadQueue.maxConcurrentOperationCount = 6;

6. SDWebImage默認(rèn)下載的超時時長是多少?

15秒, _downloadTimeout = 15.0;

7. SDWebImage默認(rèn)緩存的時間是多久碧浊?

一周時間

_maxCacheAge = kDefaultCacheMaxCacheAge;
static const NSInteger kDefaultCacheMaxCacheAge = 60 * 60 * 24 * 7; // 1 week

6.AFNetWorking 架構(gòu)分析?

AFN根據(jù)功能模塊來劃分,可以分為5個部分:

  • NSURLSession - 負(fù)責(zé)網(wǎng)絡(luò)通信工作(核心)
  • Serialization - 負(fù)責(zé)數(shù)據(jù)的序列化工作
  • Reachability - 負(fù)責(zé)網(wǎng)絡(luò)狀態(tài)監(jiān)聽工作
  • Security - 負(fù)責(zé)安全認(rèn)證工作
  • UIKit - 對UIKit框架擴(kuò)展

AFNetworking 實(shí)際上只是對 NSURLSession 高度地封裝, 提供一些簡單易用的 API 方便我們在 iOS 開發(fā)中發(fā)出網(wǎng)絡(luò)請求并在其上更快地構(gòu)建網(wǎng)絡(luò)層組件并提供合理的接口;

7.AFNetworking 2.0 和3.0 的區(qū)別

  • 在AFNetworking 3.0之前涂邀,底層是通過封裝NSURLConnection來實(shí)現(xiàn)的。

  • 在AFNetworking 3.0之后箱锐,也就是在iOS 9.0 之后比勉,NSURLConnection被棄用,蘋果推薦使用NSURLSession來管理網(wǎng)絡(luò)請求驹止,所以AFNetworking 3.0之后浩聋,底層是通過封裝NSURLSession來實(shí)現(xiàn)的。

  • 從AFNetworking 3.0中之后臊恋,下面三個方法被棄用了衣洁。

AFURLConnectionOperation 
AFHTTPRequestOperation 
AFHTTPRequestOperationManager 
  • 依次被下面三個類代替了,同時請求方法也跟著改變了抖仅,所以AFNetworking 3.0以后發(fā)生了很大的變化闸与。
AFURLSessionManager 
AFHTTPSessionManager 
AFNetworkReachabilityManager

8.MJExtension 字典轉(zhuǎn)模型原理?

MJExtension是一個轉(zhuǎn)換速度快、使用簡單方便的字典轉(zhuǎn)模型框架, 通過rumtime獲取對象的所有成員變量(包括父類的),通過KVC進(jìn)行賦值操作,達(dá)到了將字典數(shù)據(jù)映射到了模型對象上;

9.FMDB如何保證線程安全?

FMDB是對蘋果SQLite的封裝, 通過使用FMDatabaseQueue 來保證線程安全,FMDatabaseQueue是同步執(zhí)行, _queue是 同步串行隊(duì)列岸售。

10.你讀過哪些三方庫源碼?

11.常用的 git 指令有什么?

git clone # 克隆代碼倉庫
git add # 將工作區(qū)的修改提交到暫存區(qū)
git commit # 將暫存區(qū)的修改提交到當(dāng)前分支
git reset # 回退到某一個版本
git stash # 保存某次修改
git pull # 從遠(yuǎn)程更新代碼
git push # 將本地代碼更新到遠(yuǎn)程分支上
git reflog # 查看歷史命令
git status # 查看當(dāng)前倉庫的狀態(tài)
git diff # 查看修改
git log # 查看提交歷史
git revert # 回退某個修改
git checkout -b dev #創(chuàng)建分支践樱,然后切換到分支
git branch # 查看當(dāng)前分支
git merge dev #合并指定分支到當(dāng)前分支
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市凸丸,隨后出現(xiàn)的幾起案子拷邢,更是在濱河造成了極大的恐慌,老刑警劉巖屎慢,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞭稼,死亡現(xiàn)場離奇詭異忽洛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)环肘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門欲虚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人悔雹,你說我怎么就攤上這事复哆。” “怎么了腌零?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵梯找,是天一觀的道長。 經(jīng)常有香客問我益涧,道長锈锤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任闲询,我火速辦了婚禮久免,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘扭弧。我一直安慰自己妄壶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布寄狼。 她就那樣靜靜地躺著,像睡著了一般氨淌。 火紅的嫁衣襯著肌膚如雪泊愧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天盛正,我揣著相機(jī)與錄音删咱,去河邊找鬼。 笑死豪筝,一個胖子當(dāng)著我的面吹牛痰滋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播续崖,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼敲街,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了严望?” 一聲冷哼從身側(cè)響起多艇,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎像吻,沒想到半個月后峻黍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體复隆,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年姆涩,在試婚紗的時候發(fā)現(xiàn)自己被綠了挽拂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡骨饿,死狀恐怖亏栈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情样刷,我是刑警寧澤仑扑,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站置鼻,受9級特大地震影響镇饮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜箕母,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一储藐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嘶是,春花似錦钙勃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至希太,卻和暖如春克饶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背誊辉。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工矾湃, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人堕澄。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓邀跃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蛙紫。 傳聞我的和親對象是個殘疾皇子拍屑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容