第三方框架

一、第三方API是怎么用的执泰?

iOS第三方庫(kù)匯總

  • 1.第三方API在官方文檔都有說(shuō)明唧躲,按照官方文檔的一步一步做
  • 2.參考官方提供的示例程序
  • 3.先自己創(chuàng)建一個(gè)工程試試,等熟悉了篡腌,在使用到項(xiàng)目中

二褐荷、列舉現(xiàn)在熟悉 iOS開(kāi)發(fā)庫(kù)和第三方開(kāi)發(fā)庫(kù)?

友盟(包括第三方登錄和分享)嘹悼,高德地圖叛甫,百度地
圖,AFN,SDWebimage,FMDB, MBProgressHUD,Fabric
Crashlytics,R.swift,JSms,UMengUShare/UI,CircleProgressView,MJRefresh, IQKeyboardManagerSwift,Moya/RxSwift,Qiniu,SDWebImage,RxDataSources,RealmSwift,Mapbox-iOS-SDK,AudioKit,AudioKit/UI等等

三、SDWebImage內(nèi)部實(shí)現(xiàn)過(guò)程

  • 1.入口setImageWithURL:placeholderImage:options: 會(huì)先把placeholderImage 顯示杨伙,然后 SDWebImageManager 根據(jù) URL 開(kāi)始處理圖片其监。

  • 2.進(jìn)入 SDWebImageManager-downloadWithURL:delegate:options:userInfo: 交給 SDImageCache 從緩存查找圖片是否已經(jīng)下載queryDiskCacheForKey:delegate:userInfo:

  • 3.先從內(nèi)存圖片緩存查找是否有圖片,如果內(nèi)存中已經(jīng)有圖片緩存限匣,SDImageCacheDelegate 回調(diào) imageCache:didFindImage:forKey:userInfo: 到 SDWebImageManager抖苦。

  • 4.SDWebImageManagerDelegate 回調(diào) webImageManager:didFinishWithImage: 到UIImageView+WebCache 等前端展示圖片。

  • 5.如果內(nèi)存緩存中沒(méi)有米死,生成 NSInvocationOperation 添加到隊(duì)列開(kāi)始從硬盤(pán)查找圖片是否已經(jīng)緩存锌历。

  • 6.根據(jù) URLKey 在硬盤(pán)緩存目錄下嘗試讀取圖片文件。這一步是在 NSOperation 進(jìn)行的操作峦筒,所以回主線程進(jìn)行結(jié)果回調(diào)notifyDelegate:

  • 7.如果上一操作從硬盤(pán)讀取到了圖片究西,將圖片添加到內(nèi)存緩存中(如果空閑內(nèi)存過(guò)小,會(huì)先清空內(nèi)存緩存)物喷。SDImageCacheDelegate 回調(diào)imageCache:didFindImage:forKey:userInfo: 進(jìn)而回調(diào)展示圖片卤材。

  • 8.如果從硬盤(pán)緩存目錄讀取不到圖片遮斥,說(shuō)明所有緩存都不存在該圖片,需要下載圖片商膊,回調(diào) imageCache:didNotFindImageForKey:userInfo:

  • 9.共享或重新生成一個(gè)下載器 SDWebImageDownloader 開(kāi)始下載圖片伏伐。

  • 10.圖片下載由 NSURLConnection 來(lái)做,實(shí)現(xiàn)相關(guān) delegate 來(lái)判斷圖片下載中晕拆、下載完成和下載失敗藐翎。

  • 11.connection:didReceiveData: 中利用 ImageIO 做了按圖片下載進(jìn)度加載效果。

  • 12.connectionDidFinishLoading: 數(shù)據(jù)下載完成后交給 SDWebImageDecoder 做圖片解碼處理实幕。

  • 13.圖片解碼處理在一個(gè) NSOperationQueue 完成吝镣,不會(huì)拖慢主線程 UI。如果有需要對(duì)下載的圖片進(jìn)行二次處理昆庇,最好也在這里完成末贾,效率會(huì)好很多。

  • 14.在主線程notifyDelegateOnMainThreadWithInfo: 宣告解碼完成整吆,imageDecoder:didFinishDecodingImage:userInfo: 回調(diào)給 SDWebImageDownloader拱撵。

  • 15.imageDownloader:didFinishWithImage: 回調(diào)給 SDWebImageManager 告知圖片下載完成。

  • 16.通知所有的 downloadDelegates 下載完成表蝙,回調(diào)給需要的地方展示圖片拴测。

  • 17.將圖片保存到 SDImageCache 中,內(nèi)存緩存和硬盤(pán)緩存同時(shí)保存府蛇。寫(xiě)文件到硬盤(pán)也在以單獨(dú) NSInvocationOperation 完成集索,避免拖慢主線程。

  • 18.SDImageCache 在初始化的時(shí)候會(huì)注冊(cè)一些消息通知汇跨,在內(nèi)存警告或退到后臺(tái)的時(shí)候清理內(nèi)存圖片緩存务荆,應(yīng)用結(jié)束的時(shí)候清理過(guò)期圖片。

  • 19.SDWebImage 也提供了UIButton+WebCache 和 MKAnnotationView+WebCache穷遂,方便使用函匕。

  • 20.SDWebImagePrefetcher 可以預(yù)先下載圖片,方便后續(xù)使用蚪黑。

四浦箱、使用過(guò)友盟、融云嗎祠锣?

使用過(guò)友盟的社會(huì)化分享,集成了 qq 空間咽安、qq 好友伴网、微信、朋友圈妆棒、新浪微博分享和數(shù)據(jù)統(tǒng)計(jì)澡腾,統(tǒng)計(jì)流量來(lái)源沸伏、內(nèi)容使用、用戶屬性和行為數(shù)據(jù)动分∫阍悖可以熟練的自定義分享的界面

融云

五、常使用的支付方式有哪些澜公?介紹一下集成邏輯

下載 SDK姆另,申請(qǐng)賬號(hào)、交費(fèi)坟乾、加入客服群迹辐,按照 SDK 進(jìn)行集成 百度錢(qián)包、微信支付甚侣、支付寶明吩、銀聯(lián)
iOS之支付

六、你實(shí)現(xiàn)過(guò)一個(gè)框架或者庫(kù)以供別人使用么殷费?如果有印荔,請(qǐng)談一談構(gòu)建框架或者庫(kù)時(shí)候的經(jīng)驗(yàn);如果沒(méi)有详羡,請(qǐng)?jiān)O(shè)想和設(shè)計(jì)框架的 public的 API仍律,并指出大概需要如何做、需要注意一些什么方面殷绍,來(lái)使別人容易地使用你的框架染苛。

  • 大公司面試三年以上開(kāi)發(fā)人員基本都會(huì)問(wèn)的問(wèn)題

答:抽象和封裝,方便使用主到。首先是對(duì)問(wèn)題有充分的了解茶行,比如構(gòu)建一個(gè)文件解壓壓縮框架,從使用者的角度出發(fā)登钥,只需關(guān)注發(fā)送給框架一個(gè)解壓請(qǐng)求畔师,框架完成復(fù)雜文件的解壓操作,并且在適當(dāng)?shù)臅r(shí)候通知給是哦難過(guò)者牧牢,如解壓完成看锉、解壓出錯(cuò)等。在框架內(nèi)部去構(gòu)建對(duì)象的關(guān)系塔鳍,通過(guò)抽象讓其更為健壯伯铣、便于更改。其次是API的說(shuō)明文檔轮纫。

如何將自己的庫(kù)上傳到CocoaPods

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腔寡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子掌唾,更是在濱河造成了極大的恐慌放前,老刑警劉巖忿磅,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異凭语,居然都是意外死亡葱她,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)似扔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吨些,“玉大人,你說(shuō)我怎么就攤上這事虫几〈覆樱” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵辆脸,是天一觀的道長(zhǎng)但校。 經(jīng)常有香客問(wèn)我,道長(zhǎng)啡氢,這世上最難降的妖魔是什么状囱? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮倘是,結(jié)果婚禮上亭枷,老公的妹妹穿的比我還像新娘。我一直安慰自己搀崭,他們只是感情好叨粘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著瘤睹,像睡著了一般升敲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轰传,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天驴党,我揣著相機(jī)與錄音,去河邊找鬼获茬。 笑死港庄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的恕曲。 我是一名探鬼主播鹏氧,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼佩谣!你這毒婦竟也來(lái)了度帮?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎笨篷,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體瓣履,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡率翅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了袖迎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冕臭。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖燕锥,靈堂內(nèi)的尸體忽然破棺而出辜贵,到底是詐尸還是另有隱情,我是刑警寧澤归形,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布托慨,位于F島的核電站,受9級(jí)特大地震影響暇榴,放射性物質(zhì)發(fā)生泄漏厚棵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一蔼紧、第九天 我趴在偏房一處隱蔽的房頂上張望婆硬。 院中可真熱鬧,春花似錦奸例、人聲如沸彬犯。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谐区。三九已至,卻和暖如春菩貌,著一層夾襖步出監(jiān)牢的瞬間卢佣,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工箭阶, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虚茶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓仇参,卻偏偏與公主長(zhǎng)得像嘹叫,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子诈乒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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