1. 客戶端安全性處理方式勾缭?
- 網(wǎng)絡(luò)數(shù)據(jù)傳輸
- 敏感數(shù)據(jù)不能明文發(fā)送:
- 賬號(hào)
- 密碼
- 消費(fèi)數(shù)據(jù)
- 銀行卡賬號(hào)
- 敏感數(shù)據(jù)不能明文發(fā)送:
- 協(xié)議的問(wèn)題
- 自定義協(xié)議
- 游戲代練
- 本地文件存儲(chǔ)
- 游戲的存檔
- 源代碼
2. SIP是什么寇甸?
- SIP(Session Initiation Protocol)输莺,會(huì)話發(fā)起協(xié)議
- SIP是建立VoIP連接的IETF標(biāo)準(zhǔn)甫男,IETF是全球互聯(lián)網(wǎng)最具權(quán)威的技術(shù)標(biāo)準(zhǔn)化組織
- 所謂VoIP攘已,就是網(wǎng)絡(luò)電話亡资,直接用互聯(lián)網(wǎng)打電話澜共,不用耗費(fèi)手機(jī)話費(fèi)
3. 有些圖片加載的比較慢怎么處理?你是怎么優(yōu)化程序的性能的锥腻?
- 圖片下載放在異步線程
- 圖片下載過(guò)程中使用占位圖片
- 如果圖片較大嗦董,可以考慮多線程斷點(diǎn)下載
4. 你實(shí)現(xiàn)過(guò)一個(gè)框架或者庫(kù)以供別人使用嗎?如果有瘦黑,請(qǐng)談一談構(gòu)建框架或者庫(kù)的時(shí)候經(jīng)驗(yàn)京革;如果沒有,請(qǐng)?jiān)O(shè)想和設(shè)計(jì)框架的public的API幸斥,并指出大概需要如何做匹摇、需要注意一些什么方面來(lái)使別人容易地使用你的框架?
- 提供給外界的接口功能是否實(shí)用甲葬、夠用
- 別人使用我的框架時(shí)廊勃,能不能根據(jù)類名、方法名就猜出接口的具體作用
- 別人調(diào)用接口時(shí)经窖,提供的參數(shù)是否夠用坡垫、調(diào)用起來(lái)是否簡(jiǎn)單
- 別人使用我的框架時(shí),要不要再導(dǎo)入其他的框架
5. APP需要加載超大量的數(shù)據(jù)時(shí)画侣,給服務(wù)器發(fā)送請(qǐng)求葛虐,但是服務(wù)器卡住了如何解決?
- 設(shè)置請(qǐng)求超時(shí)
- 給用戶提示請(qǐng)求超時(shí)
- 根據(jù)用戶操作再次請(qǐng)求數(shù)據(jù)
6. 利用NSNotificationCenter實(shí)現(xiàn)跨多控制器傳輸數(shù)據(jù)和消息中用同步還是異步棉钧?
- 如果通知是在主線程發(fā)出,那么接收通知的方法中的耗時(shí)操作要放到異步線程中
[[NSNotificationCenter defaultCenter] postNotificationName: @"abc" object; nil ];
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(test) name: @"abc" object : nil];
- (void) test { dispatch.....}
- 如果通知實(shí)在異步線程中發(fā)出,那么接收通知后調(diào)用的方法會(huì)默認(rèn)在異步線程中執(zhí)行
dispatch_async ( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{
[NSNotificationCenter defaultCenter] postNotificationName: @"abc" object; nil ];
});
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(test) name: @"abc" object : nil];
- (void) test {}
7. 如何編寫XML?
- 打開Xcode創(chuàng)建XML文件,見下圖:
8. 地圖導(dǎo)航不能用了怎么辦宪卿?
- 提示用戶打開導(dǎo)航定位功能
9. SDWebImage具體如何實(shí)現(xiàn)的诵?
- 利用NSOperationQueue和NSOperation下載圖片,還使用了GCD的一些函數(shù)(解碼GIF圖片)
- 利用URL作為key佑钾,NSOperation作為value
- 利用URL作為key西疤,UIImage作為value
10. AFN與ASI有什么區(qū)別?
- AFN基于NSURL休溶,ASI基于底層的CFNetwork框架代赁,因此ASI的性能優(yōu)于AFN
- AFN采取block的方式處理請(qǐng)求,ASI最初采取delegate的方式處理請(qǐng)求兽掰,后面也增加了block的方式
- AFN只封裝了一些常用功能芭碍,滿足基本需求,直接忽略了很多擴(kuò)展功能孽尽,比如沒有封裝同步請(qǐng)求窖壕;ASI提供的功能較多,預(yù)留了各種接口和工具供開發(fā)者自行擴(kuò)展
- AFN直接解析服務(wù)器返回的JSON杉女、XML等數(shù)據(jù)瞻讽,而ASI比較原始,返回的是NSData二進(jìn)制數(shù)據(jù)
11. 你在實(shí)際開發(fā)中熏挎,有哪些手機(jī)架構(gòu)與性能調(diào)試經(jīng)驗(yàn)
- 剛接手公司的舊項(xiàng)目時(shí)速勇,模塊特別多,而且?guī)缀跛械拇a都寫在控制器里面坎拐,比如UI控件代碼烦磁、網(wǎng)絡(luò)請(qǐng)求代碼、數(shù)據(jù)存儲(chǔ)代碼
- 接下來(lái)采取MVC模式進(jìn)行封裝廉白、重構(gòu)
- 自定義UI控件封裝內(nèi)部業(yè)務(wù)邏輯
- 封裝網(wǎng)絡(luò)請(qǐng)求工具類
- 封裝數(shù)據(jù)存儲(chǔ)工具類
12. runloop定時(shí)器和輸入源
- 程序不需要顯示的創(chuàng)建runloop个初;每個(gè)線程,包括程序的主線程(main thread)都有與之相對(duì)應(yīng)的runloop對(duì)象猴蹂,主線程會(huì)自動(dòng)創(chuàng)建并運(yùn)行runloop
- runloop處理的輸入事件有兩種不同的來(lái)源:輸入源(input source)和定時(shí)源(timer source)
-
輸入源傳遞異步消息院溺,通常來(lái)自于其他線程或者程序。定時(shí)源則傳遞同步消息磅轻,在特定時(shí)間或者一定的時(shí)間間隔發(fā)生
13. 你的項(xiàng)目中都用了哪些框架珍逸,及何種開發(fā)工具,具體到是哪個(gè)版本聋溜,這個(gè)版本的特性有哪些谆膳?(比如Xcode的版本)
- AFN、SDWebImage撮躁、MBProgressHUD等(推薦參考:網(wǎng)易新聞 第三方庫(kù))
- Xcode 6.4
14. 自己怎么實(shí)現(xiàn)原子鎖漱病?
*iOS中一般用nonatomic
15. 即時(shí)通訊中的大數(shù)據(jù)處理
- 用put方式上傳到文件服務(wù)器,然后發(fā)帶URL的自定義格式的文件給對(duì)方,對(duì)方收到后下載
16. JSON解析的具體實(shí)現(xiàn)
- SBJSON
- JSONKit
- NSJSONSerialization
17. 如果在網(wǎng)絡(luò)數(shù)據(jù)處理中杨帽,發(fā)現(xiàn)一處比較卡漓穿,一般怎么解決?
- 檢查網(wǎng)絡(luò)請(qǐng)求操作是否被放在主線程
- 看看異步請(qǐng)求的數(shù)量是否太多了(子線程數(shù)量)
- 數(shù)據(jù)量是否太大注盈,如果太大晃危,先清除一些不必要的對(duì)象(看不見的數(shù)據(jù),圖片)
- 手機(jī)CPU使用率和內(nèi)存問(wèn)題
18. 怎么合理地介紹一個(gè)項(xiàng)目老客?
- 項(xiàng)目的價(jià)值(可以加些“老板”關(guān)鍵字)
- 項(xiàng)目的模塊
- 我做的是哪個(gè)模塊
19. 怎么解決SQLite鎖定的問(wèn)題僚饭?
- 設(shè)置數(shù)據(jù)庫(kù)鎖定的處理函數(shù)
int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*);
- 設(shè)定鎖定時(shí)的等待時(shí)間
int sqlite3_busy_timeout(sqlite3*, 60);