聊幾個(gè)iOS中的面試題

一、內(nèi)存管理

1却紧、分析工具:

  • 靜態(tài)分析法:Analyze。
  • 動態(tài)分析法:Instrument工具庫里的Leaks钞艇。

2啄寡、原因分析:
目前,在ARC環(huán)境下哩照,導(dǎo)致內(nèi)存泄漏的根本原因是代碼中存在循環(huán)引用挺物,從而導(dǎo)致一些內(nèi)存無法釋放,最終導(dǎo)致dealloc()方法無法被調(diào)用飘弧。
主要原因大概有一下幾種類型:

  • ViewController中存在NSTimer(理由:這時(shí) target: self识藤,增加了ViewController的retain count, 即self強(qiáng)引用timer次伶,timer強(qiáng)引用self痴昧。造成循環(huán)引用。解決方案:在恰當(dāng)時(shí)機(jī)調(diào)用[timer invalidate]即可冠王。)
  • ViewController中的代理delegate(理由:如果代理用strong修飾赶撰,ViewController(self)會強(qiáng)引用View,View強(qiáng)引用delegate柱彻,delegate內(nèi)部強(qiáng)引用ViewController(self)豪娜,造成內(nèi)存泄漏。解決方案:代理盡量使用weak修飾哟楷。)
  • ViewController中Block(如果block被當(dāng)前ViewController(self)持有瘤载,這時(shí),如果block內(nèi)部再持有ViewController(self)卖擅,就會造成循環(huán)引用鸣奔。解決方案:在block外部對弱化self,再在block內(nèi)部強(qiáng)化已經(jīng)弱化的weakSelf)

二惩阶、單例設(shè)計(jì)模式

1挎狸、優(yōu)點(diǎn):節(jié)省內(nèi)存開銷
2、系統(tǒng)自帶的單例模式:[UIApplication shareApplication]琳猫,[NSUserdefaults standardUserDefualts],[UIDevice currentDevice];

三伟叛、json/XML

XML優(yōu)缺點(diǎn):

  • 優(yōu)點(diǎn):
    1.格式統(tǒng)一,符合標(biāo)準(zhǔn)脐嫂。
    2.容易與其他系統(tǒng)進(jìn)行遠(yuǎn)程交互统刮,數(shù)據(jù)共享比較方便
  • 缺點(diǎn):
    1.XML文件格式龐大紊遵,格式復(fù)雜,傳輸占用帶寬
    2.服務(wù)器和客戶端都需要花費(fèi)大量代碼來解析XML侥蒙,不論服務(wù)器端還是客戶端都使代碼變得異常復(fù)雜和不容易維護(hù)暗膜。
    3.客戶端不同瀏覽器之間解析XML的方式不一致,需要重復(fù)編寫很多代碼鞭衩。
    4.服務(wù)器端和客戶端解析XML花費(fèi)資源和時(shí)間学搜。
    JSON優(yōu)缺點(diǎn):
  • 優(yōu)點(diǎn):
    1.數(shù)據(jù)格式比較簡單,易于讀寫论衍,格式都是壓縮的瑞佩,占用帶寬小。
    2.這種語言易于解析坯台。
    3.支持多種語言炬丸,包括ActionScript,C,C#,ColdFusion,Java,JavaScript,Perl,PHP,Python,Ruby等服務(wù)器端語言,便于服務(wù)器端解析蜒蕾。
    4.因?yàn)镴SON格式能夠直接為服務(wù)器端代碼使用稠炬,大大簡化了服務(wù)器端和客戶端的代碼開發(fā)量,但是完成的任務(wù)不變咪啡,且易于維護(hù)首启。
  • 缺點(diǎn)
    1.沒有XML格式折這么推廣的深入人心和廣泛使用,沒有XML那么通用
    2.JSON格式目前在Web Service中的推廣還屬于初級階段

四撤摸、數(shù)據(jù)存儲

內(nèi)存存儲和磁盤存儲毅桃,磁盤存儲又分為數(shù)據(jù)庫存儲和文件系統(tǒng)存儲。
內(nèi)存存儲:NSURLConnection准夷,NSCache疾嗅。
文件系統(tǒng)存儲:plist、NSUserDefaults冕象、keyChain存儲,NSKeyedArchiver
數(shù)據(jù)庫存儲:SQLite3汁蝶、FMDB
1渐扮、沙盒
如果程序中有需要長時(shí)間持久化的數(shù)據(jù),就選擇Documents掖棉,如果有體積大但是并不重要的數(shù)據(jù)墓律,就可以選擇交給Library,而臨時(shí)沒用的數(shù)據(jù)當(dāng)然是放到temp幔亥。至于Preference則可以用來保存一些設(shè)置類信息耻讽,后面會講到偏好設(shè)置的使用方法。

2帕棉、plist存儲

//寫入數(shù)據(jù)
[dict writeToFile:filePath atomically:YES];

//讀取數(shù)據(jù)
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:filePath];

3针肥、Preference偏好設(shè)置
偏好設(shè)置的使用非常方便快捷饼记,我們一般使用它來進(jìn)行一些設(shè)置的記錄,比如用戶名慰枕,開關(guān)是否打開等設(shè)置具则。 Preference是通過NSUserDefaults來使用的,是通過鍵值對的方式記錄設(shè)置具帮。
4博肋、NSKeyedArchiver歸檔 / NSKeyedUnarchiver解檔
5、SQLite3 需要熟悉sql語句蜂厅,應(yīng)用比較少匪凡,會用三方工具
6、FMDB

五掘猿、第三方框架原理

1病游、AFN:
答:
答:
AFNetworking是封裝的NSURLSession的網(wǎng)絡(luò)請求,由五個(gè)模塊組成:分別由NSURLSession,Security,Reachability,Serialization,UIKit五部分組成

NSURLSession:網(wǎng)絡(luò)通信模塊(核心模塊) 對應(yīng) AFNetworking中的 AFURLSessionManager和對HTTP協(xié)議進(jìn)行特化處理的AFHTTPSessionManager,AFHTTPSessionManager是繼承于AFURLSessionmanager的

Security:網(wǎng)絡(luò)通訊安全策略模塊 對應(yīng) AFSecurityPolicy

Reachability:網(wǎng)絡(luò)狀態(tài)監(jiān)聽模塊 對應(yīng)AFNetworkReachabilityManager

Seriaalization:網(wǎng)絡(luò)通信信息序列化术奖、反序列化模塊 對應(yīng) AFURLResponseSerialization

UIKit:對于iOS UIKit的擴(kuò)展庫

2礁遵、SDWebImage
答:
0、首先顯示占位圖

1采记、在webimagecache中尋找圖片對應(yīng)的緩存佣耐,它是以url為數(shù)據(jù)索引先在內(nèi)存中查找是否有緩存;

2唧龄、如果沒有緩存兼砖,就通過md5處理過的key來在磁盤中查找對應(yīng)的數(shù)據(jù),如果找到就會把磁盤中的數(shù)據(jù)加到內(nèi)存中既棺,并顯示出來讽挟;

3、如果內(nèi)存和磁盤中都沒有找到丸冕,就會向遠(yuǎn)程服務(wù)器發(fā)送請求耽梅,開始下載圖片;

4胖烛、下載完的圖片加入緩存中眼姐,并寫入到磁盤中;

5佩番、整個(gè)獲取圖片的過程是在子線程中進(jìn)行众旗,在主線程中顯示。

六趟畏、應(yīng)用瘦身:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贡歧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌利朵,老刑警劉巖律想,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哗咆,居然都是意外死亡蜘欲,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門晌柬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姥份,“玉大人,你說我怎么就攤上這事年碘〕呵福” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵屿衅,是天一觀的道長埃难。 經(jīng)常有香客問我,道長涤久,這世上最難降的妖魔是什么涡尘? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮响迂,結(jié)果婚禮上考抄,老公的妹妹穿的比我還像新娘。我一直安慰自己蔗彤,他們只是感情好川梅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著然遏,像睡著了一般贫途。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上待侵,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天丢早,我揣著相機(jī)與錄音,去河邊找鬼秧倾。 笑死香拉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的中狂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼扑毡,長吁一口氣:“原來是場噩夢啊……” “哼胃榕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤勋又,失蹤者是張志新(化名)和其女友劉穎苦掘,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體楔壤,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鹤啡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蹲嚣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片递瑰。...
    茶點(diǎn)故事閱讀 39,722評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖隙畜,靈堂內(nèi)的尸體忽然破棺而出抖部,到底是詐尸還是另有隱情,我是刑警寧澤议惰,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布慎颗,位于F島的核電站,受9級特大地震影響言询,放射性物質(zhì)發(fā)生泄漏俯萎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一运杭、第九天 我趴在偏房一處隱蔽的房頂上張望夫啊。 院中可真熱鬧,春花似錦县习、人聲如沸涮母。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叛本。三九已至,卻和暖如春彤钟,著一層夾襖步出監(jiān)牢的瞬間来候,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工逸雹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留营搅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓梆砸,卻偏偏與公主長得像转质,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子帖世,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評論 2 353