李洪强经典面试题10
1.?????客戶端安全性處理方式?
1>???網(wǎng)絡(luò)數(shù)據(jù)傳輸(敏感數(shù)據(jù)[賬號\密碼\消費(fèi)數(shù)據(jù)\銀行卡賬號],?不能明文發(fā)送)
2>???協(xié)議的問題(自定義協(xié)議,?游戲代練)
3>???本地文件存儲(游戲的存檔)
4>???源代碼
?
1>??SIP(Session Initiation Protocol),會話發(fā)起協(xié)議
2>??SIP是建立VOIP連接的?IETF?標(biāo)準(zhǔn),IETF是全球互聯(lián)網(wǎng)最具權(quán)威的技術(shù)標(biāo)準(zhǔn)化組織
3>??所謂VOIP,就是網(wǎng)絡(luò)電話,直接用互聯(lián)網(wǎng)打電話,不用耗手機(jī)話費(fèi)
?
1>???圖片下載放在異步線程
2>???圖片下載過程中使用占位圖片
3>???如果圖片較大,可以考慮多線程斷點(diǎn)下載
?
1>???提供給外界的接口功能是否實(shí)用、夠用
2>???別人使用我的框架時,能不能根據(jù)類名、方法名就猜出接口的具體作用
3>???別人調(diào)用接口時,提供的參數(shù)是否夠用、調(diào)用起來是否簡單
4>???別人使用我的框架時,要不要再導(dǎo)入依賴其他的框架
?
5.?????App需要加載超大量的數(shù)據(jù),給服務(wù)器發(fā)送請求,但是服務(wù)器卡住了如何解決?
1>???設(shè)置請求超時
2>???給用戶提示請求超時
3>???根據(jù)用戶操作再次請求數(shù)據(jù)
?
6.?????利用NSNotificationCenter實(shí)現(xiàn)跨多控制器傳輸數(shù)據(jù)和消息中用同步還是異步?
?
7.?????如何編寫xml
?
8.?????地圖導(dǎo)航不能用了怎么辦
提示用戶打開導(dǎo)航定位功能
?
9.?????SDWebImage具體如何實(shí)現(xiàn)
1>???利用NSOperationQueue和NSOperation下載圖片,?還使用了GCD的一些函數(shù)(解碼GIF圖片)
2>???利用URL作為key,NSOperation作為value
3>???利用URL作為key,UIImage作為value
?
10. AFN?與?ASI?有什么區(qū)別
1>??AFN基于NSURL,ASI基于底層的CFNetwork框架,因此ASI的性能優(yōu)于AFN
2>??AFN采取block的方式處理請求,ASI最初采取delegate的方式處理請求,后面也增加了block的方式
3>??AFN只封裝了一些常用功能,滿足基本需求,直接忽略了很多擴(kuò)展功能,比如沒有封裝同步請求;ASI提供的功能較多,預(yù)留了各種接口和工具供開發(fā)者自行擴(kuò)展
4>??AFN直接解析服務(wù)器返回的JSON、XML等數(shù)據(jù),而ASI比較原始,返回的是NSData二進(jìn)制數(shù)據(jù)
?
?
11.?你在實(shí)際開發(fā)中,有哪些手機(jī)架構(gòu)與性能調(diào)試經(jīng)驗(yàn)
1>???剛接手公司的舊項目時,模塊特別多,而且?guī)缀跛械拇a都寫在控制器里面,比如UI控件代碼、網(wǎng)絡(luò)請求代碼、數(shù)據(jù)存儲代碼
2>???接下來采取MVC模式進(jìn)行封裝、重構(gòu)
l??自定義UI控件封裝內(nèi)部的業(yè)務(wù)邏輯
l??封裝網(wǎng)絡(luò)請求工具類
l??封裝數(shù)據(jù)存儲工具類
?
12. runloop定時源和輸入源
1>???你創(chuàng)建的程序不需要顯示的創(chuàng)建run loop;每個線程,包括程序的主線程(main thread)都有與之相應(yīng)的run loop對象,?主線程會自行創(chuàng)建并運(yùn)行run loop
2>???Run loop處理的輸入事件有兩種不同的來源:輸入源(input source)和定時源(timer source)
3>???輸入源傳遞異步消息,通常來自于其他線程或者程序。定時源則傳遞同步消息,在特定時間或者一定的時間間隔發(fā)生
?
?
13.?你們項目中都用了哪些框架,?及何種開發(fā)工具,具體到是哪個版本,這個版本的特性有哪些???(比如xcode的版本)
1>??AFN、SDWebImage、MBProgressHUD等?(搜索:?網(wǎng)易新聞?第三方庫)
2>??Xcode 5.0
?
14.?自己怎么實(shí)現(xiàn)原子鎖
iOS中一般用nonaotomic
?
15.?運(yùn)行時的內(nèi)部實(shí)現(xiàn)
?
16.?即時通訊中的大數(shù)據(jù)處理
用put上傳到文件服務(wù)器,然后發(fā)帶url的自定義格式的給對方,對方接收到之后下載
?
17. json解析的具體實(shí)現(xiàn)
1>??SBJson
2>??JSONKit
3>??NSJSONSerialization
?
18.?如果在網(wǎng)絡(luò)數(shù)據(jù)處理過程中,發(fā)現(xiàn)一處比較卡,一般怎么解決
1>???檢查網(wǎng)絡(luò)請求操作是否被放在主線程了
2>???看看異步請求的數(shù)量是否太多了(子線程數(shù)量)
3>???數(shù)據(jù)量是否太大?如果太大,先清除一些不必要的對象(看不見的數(shù)據(jù)、圖片)
4>???手機(jī)CPU使用率和內(nèi)存問題
?
19.?怎么介紹一個項目
1>???項目的價值(可以加些“老板”關(guān)鍵字)
2>???項目的模塊
3>???我做的是哪個模塊
?
20.?怎么解決sqlite鎖定的問題
1>??設(shè)置數(shù)據(jù)庫鎖定的處理函數(shù)
int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*);
2>??設(shè)定鎖定時的等待時間
int sqlite3_busy_timeout(sqlite3*, 60);?:
總結(jié)
以上是生活随笔為你收集整理的李洪强经典面试题10的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Google Guava] 使用和避免
- 下一篇: 避免每个类中都初始化日志类