2018 一份"有點難"的iOS面試題(7年iOS開發)

序言:

之前一時興致在本站上出過一份iOS的中級面試題,引起一些關注,不少同學表示對”隱藏關卡“感興趣。升級版iOS面試題來了,目測難倒90%iOS程序員,目測一大波程序員擼着袖子在靠近。每道題都不難,對知識廣度有要求,請摸着良心回答,不要百度。

聲明:這份面試題和iOS程序員本身技術水平沒任何關聯,無論你能否全部答出,都不要對自己產生任何正面或消極的評價,權當做閒暇之餘的消遣。


其實做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這是一個我的iOS交流羣:638302184,,不管你是小白還是大牛歡迎入駐,大家一起交流學習 


圖片來源於網絡

一、面試題

1.NSString如何計算字符的個數?

2.PKI體系當中加密和簽名有什麼區別?

3.如何自己高效實現NSUserDefault?

4.解釋下tcp的慢啓動特性。

5.如何用HTTP實現長連接?

6.HTTP2.0針對同一個域名的多個請求,會建立多少個tcp連接?

7.數據庫建表的時候索引有什麼用?

8.Full Text Search爲什麼快?

9.iOS下如何實現指定線程數目的線程池?

10.介紹下iOS設備獲取唯一設備號的歷史變遷。

11.函數式編程當中的 first-class function是什麼意思呢?

12.如何使用runtime hook一個class的某個方法,又如何hook某個instance的方法?

13.談下Objective C都有哪些鎖機制,你一般用哪個?

14.聊下HTTP post的body體使用form-urlencoded和multipart/form-data的區別。

15.讓你設計一種機制檢測UIViewController的內存泄漏,你會怎麼做?

16.通過[UIImage imageNamed:]生成的對象什麼時候被釋放?

17.applicationWillEnterForeground和applicationDidBecomeActive都會在哪些場景下被調用?舉例越多越好。

18.如何終止正在運行的工作線程?

19.窮舉iOS下所有的本地持久化方案。

20.如果公司強制996,你有什麼心裏話要對老闆說嗎?


二、一個7年iOS開發者的五點建議

一位有 7年 iOS 開發經驗的程序員提出的 5 點建議,違背了這 5 條。。。後果很嚴重!也許你現在沒出現問題,也許只是項目不夠龐大!爲了所以一定要深記以下五點!

我從第一年開始開發 iOS,並參與了無數應用的開發。這裏提幾個建議,也許能幫助你構建更高效更易維護的項目。


1. 堅持原生開發

原生代碼可以避免一些致命的錯誤。每個跨平臺技術將爲您的項目增加複雜程度和潛在的 bug。我還沒有聽說過哪一個大型的項目,因爲使用原生開發而後悔,但是我聽過很多大型項目後悔使用了跨平臺開發技術,不要冒這個險!

2. 避免使用第三方庫

如今真的不需要第三方庫。幾乎所有的東西都可以使用原生框架來解決。網絡是一個很好的例子 - 你真的不需要一些高級的第三方庫來實現。只需建立自己的基於 iOS 網絡的封裝,並根據您的項目需求。簡單靈活!這幾乎滿足你所有的需要。當然有一些你無法避免添加第三方庫的情況。如果您想要在您的應用程序中使用 Google 地圖或Intercom,那就沒關係。

3. 不要使用包管理器

既然你不應該使用這麼多的第三方庫,你也就不需要一個包管理器去管理它們。只需將它們添加到項目中。使用包管理工具不會爲您節省任何時間。

4. 使用代碼佈局而不是 Storyboards

Storyboards 可能會幫助初學者快速入門,但是一旦需要做一些合理的動態佈局,就需要用代碼來完成這部分邏輯,所以爲什麼不從開始的時候就使用代碼佈局呢。我看到許多項目使用了巨大的 Storyboards,而且大部分的 ViewController 都是沒有內容的。更不用說自動佈局了 -所有複雜的東西,都可以通過代碼簡單的實現。我建議將所有佈局邏輯放在代碼中,而不需要 Storyboard 或自動佈局,這樣簡單而且非常靈活!

Core Data 很少被 iOS 開發人員所接受。因爲它很複雜,需要大量的 boilerplate才能開始使用,起初看起來並不吸引人。在我的頭幾年裏,我嘗試過幾次,但失敗了。然後我讀了這篇很棒的文章,並決定花更多時間來研究它。隨着對它研究的深入,我發現 Core Data 真的是處理 iOS 數據非常合適的方式。它有強大的功能,能夠幫助您解決一些非常困難的問題,如持久性和數據更改傳播,在幾乎每個應用程序中都需要。

遵循這些建議將讓您的項目更具維護性,可以在多個版本迭代中保存下去。讓項目維護起來更簡單!

其實做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這是一個我的iOS交流羣:638302184,不管你是小白還是大牛歡迎入駐,大家一起交流學習



文章來源於網絡,如有侵權,請聯繫小編刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章