面試題02-客戶端安全性和框架設計

1.客戶端安全處理方式sql

1>   網絡數據傳輸(敏感數據[帳號\密碼\消費數據\銀行卡帳號], 不能明文發送)數據庫

2>   協議的問題(自定義協議, 遊戲代練)json

3>   本地文件存儲(遊戲的存檔)xcode

4>   源代碼安全

2.sip 是什麼服務器

1>  SIP(Session Initiation Protocol),會話發起協議網絡

2>  SIP是創建VOIP鏈接的 IETF 標準,IETF是全球互聯網最具權威的技術標準化組織多線程

3>  所謂VOIP,就是網絡電話,直接用互聯網打電話,不用耗手機話費架構

3.     有些圖片加載的比較慢怎麼處理?你是怎麼優化程序的性能的?app

1>   圖片下載放在異步線程

2>   圖片下載過程當中使用佔位圖片

3>   若是圖片較大,能夠考慮多線程斷點下載

 4.   你實現過一個框架或者庫以供別人使用麼?若是有,請談一談構建框架或者庫時候的經驗;若是沒有,請設想和設計框架的public的API,並指出大概須要如何作、須要注意一些什麼方面,來使別人容易地使用你的框架。

1>   提供給外界的接口功能是否實用、夠用

2>   別人使用個人框架時,能不能根據類名、方法名就猜出接口的具體做用

3>   別人調用接口時,提供的參數是否夠用、調用起來是否簡單

4>   別人使用個人框架時,要不要再導入依賴其餘的框架

5.   App須要加載超大量的數據,給服務器發送請求,可是服務器卡住瞭如何解決?

1>   設置請求超時

2>   給用戶提示請求超時

3>   根據用戶操做再次請求數據

6.   利用NSNotificationCenter(通知中心)實現跨多控制器傳輸數據和消息中用同步仍是異步?

   同步:主線程;異步:能夠執行比較耗時的操做

7.  如何編寫xml(怎麼解析、怎麼生成)

 生成:(直接方法:拼接)

1 -(void)viewDidLoad
2 {
3   [super  viewDidLoad];
4    NSMutableString * xml = [NSMutableString string];
5    [xml appendString:@"<person>"];
6    [xml  appendString:@"</person>"];
7    [xml  r];
8 }

8.地圖導航不能用了怎麼辦

提示用戶打開導航定位功能

9.SDWebImage具體如何實現

1>   利用NSOperationQueue和NSOperation下載圖片, 還使用了GCD的一些函數(解碼GIF圖片)

2>   利用URL做爲key,NSOperation做爲value

3>   利用URL做爲key,UIImage做爲value

10.AFN 與 ASI 有什麼區別(都是 HTTP 請求框架)(ASI中止更新)

1>  AFN基於NSURL,ASI基於底層的CFNetwork框架,所以ASI的性能優於AFN

2>  AFN採起block的方式處理請求,ASI最初採起delegate的方式處理請求,後面也增長了block的方式

3>  AFN只封裝了一些經常使用功能,知足基本需求,直接忽略了不少擴展功能,好比沒有封裝同步請求;ASI提供的功能較多,預留了各類接口和工具供開發者自行擴展

4>  AFN直接解析服務器返回的JSON、XML等數據,而ASI比較原始,返回的是NSData二進制數據

 iOS開發:AFNetworking和ASIHTTPRequest的比較

11.你在實際開發中,有哪些手機架構與性能調試經驗

1>   剛接手公司的舊項目時,模塊特別多,並且幾乎全部的代碼都寫在控制器裏面,好比UI控件代碼、網絡請求代碼、數據存儲代碼

2>   接下來採起MVC模式進行封裝、重構

l  自定義UI控件封裝內部的業務邏輯

l  封裝網絡請求工具類

l  封裝數據存儲工具類

 

12. runloop定時源和輸入源

1>   你建立的程序不須要顯示的建立run loop;每一個線程,包括程序的主線程(main thread)都有與之相應的run loop對象, 主線程會自行建立並運行run loop

2>   Run loop處理的輸入事件有兩種不一樣的來源:輸入源(input source)和定時源(timer source)

3>   輸入源傳遞異步消息,一般來自於其餘線程或者程序。定時源則傳遞同步消息,在特定時間或者必定的時間間隔發生

 

 

13. 大家項目中都用了哪些框架, 及何種開發工具,具體到是哪一個版本,這個版本的特性有哪些???(好比xcode的版本)

1>  AFN、SDWebImage、MBProgressHUD等 (搜索: 網易新聞 第三方庫)

2>  Xcode 5.0

 

14. 本身怎麼實現原子鎖

iOS中通常用nonaotomic

 

15. 運行時的內部實現

 

16. 即時通信中的大數據處理

用put上傳到文件服務器,而後髮帶url的自定義格式的給對方,對方接收到以後下載

 

17. json解析的具體實現

1>  SBJson

2>  JSONKit

3>  NSJSONSerialization

 

18. 若是在網絡數據處理過程當中,發現一處比較卡,通常怎麼解決

1>   檢查網絡請求操做是否被放在主線程了

2>   看看異步請求的數量是否太多了(子線程數量)

3>   數據量是否太大?若是太大,先清除一些沒必要要的對象(看不見的數據、圖片)

4>   手機CPU使用率和內存問題

 

19. 怎麼介紹一個項目

1>   項目的價值(能夠加些「老闆」關鍵字)

2>   項目的模塊

3>   我作的是哪一個模塊

 

20. 怎麼解決sqlite鎖定的問題

1>  設置數據庫鎖定的處理函數

int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*);

2>  設定鎖定時的等待時間

int sqlite3_busy_timeout(sqlite3*, 60); :

相關文章
相關標籤/搜索