知乎面試題目iOS

2022-12-10 01:00:02 字數 2499 閱讀 2955

這個問題已經有很多優秀的答案了,但最近一周面試了很多ios開發,也準備了一些題目,忍不住發上來...

首先需要宣告的是,此次的面試者大多在有1~3年的ios開發經驗,並非需要找乙個真正的大牛,所以我準備的題目,自己覺得大多數還是比較基礎,比較能夠看出這個層次的人的水準的。如果你也是個有3年左右開發經驗的從業者,不妨一試。

面試開始的時候,我會讓面試者選擇乙個他最熟悉的專案,給我們介紹一下它的技術架構,以及面試者在其中參與的模組和具體工作。因為我本人很討厭面試上來做自我介紹,所以我一般開門見山,直接開始講專案了。事實上,很多開發者並不明白我提到的「架構」的具體意思,有些人說了一大堆產品的功能,還有人說的非常籠統(比如,遵循mvc架構之類),一般這種時候我會打斷他們,直接讓他們給我講一下這個app的層次結構,或者是核心模組等。

之後我會問兩個問題:

1. 講述一次在這個app中,使用者觸發了乙個事件,引起了乙個服務請求,然後獲取服務端返回,並且更新前端介面的過程。請說的詳細一點,比如資料經過了哪些類的處理,每一次傳遞時的格式是怎麼樣的?

2. 你參與的app,是如何處理多個服務的同步發起的?

隨後讓面試者說一下app的介面架構,這個比較隨意。

問完了專案,就開始基礎知識題啦~

model層:

資料持久化儲存方案有哪些?

沙盒的目錄結構是怎樣的?各自一般用於什麼場合?

sql語句問題:inner join、left join、right join的區別是什麼?

sqlite的優化

網路通訊用過哪些方式(100%的人說了afnetworking...)

如何處理多個網路請求併發的情況

在網路請求中如何提高效能

在網路請求中如何保證安全性

語言與基礎知識:

記憶體中的棧和堆的區別是什麼?那些資料在棧上,哪些在堆上?

#define和const定義的變數,有什麼區別

什麼情況下會出現記憶體的迴圈引用

block中的weak self,是任何時候都需要加的麼?

gcd的queue,main queue中執行的**,一定是在main thread麼?

nsoperationqueue有哪些使用方式

nsthread中的runloop的作用,如何使用?

.**件中的變數,外部可以直接訪問麼?(注意是變數,不是property)

講述一下runtime的概念,message send如果尋找不到相應的物件,會如何進行後續處理 ?

tcp和udp的區別是什麼?

md5和base64的區別是什麼,各自場景是什麼?

二叉搜尋樹的概念,時間複雜度多少?

架構:(我們招的不是架構師,這方面問的不多,而且從之前對app的架構介紹裡可以邊聽邊問)

哪些類不適合使用單例模式?即使他們在週期中只會出現一次。

notification的使用場景是什麼?同步還是非同步?

簡單介紹一下kvc和kvo,他們都可以應用在哪些場景?

app相關:

如何新增乙個自定義字型到工程中

如何製作乙個靜態庫/動態庫,他們的區別是什麼?

configuration中,debug和release的區別是什麼?

簡單介紹下傳送系統訊息的機制(apns)

ui:系統如何尋找到需要響應使用者操作的那個responder

多螢幕尺寸的適配

uibutton的父類是什麼?uilabel呢?

push view controller 和 present view controller的區別

描述下tableview cell的重用機制

uiview的frame和bounds的區別是什麼

最後是幾道場景題,也是我最喜歡問的:

傳送10個網路請求,然後再接收到所有回應之後執行後續操作,如何實現?

實現乙個第三方控制項,可以在任何時候出現在app介面最上層

實現乙個最簡單的點選拖拽功能。

上面那個拖拽之外,如果在手放開時,需要根據速度往前滑動呢?

如何減小乙個應用程式的尺寸?

如何提高乙個性用程式的效能?

不同版本的app,資料庫結構變化了,如何處理?

平心而論,這些題目並沒有特別難,沒有講到黑科技,也沒有講到acm演算法題,都是ios的基礎概念以及很容易遇到的場景。可能也是因為我們招的目標,也只是乙個可以完成業務開發的3年左右經驗的人而已,所以大部分面試者水平並不如意,能答出以上大半題目,同時思路清晰態度積極向上的人,不到四分之一吧...

另外的感想就是,這個行業可能真的有點浮躁,很多面試者,連簡單的幾個場景題都答不出來,基礎知識更是一般,只會用幾個第三方庫,就開口要25~30w的年薪,還有一種愛理不理的感覺。也有些人,在原來的公司,自稱是技術負責人,但連app的基本架構,包括哪些主要模組都講不清楚,各種兜圈子,甚至有人講了半天的產品功能和亮點,我不得不一次次打斷才能繼續面試。

其實我從11年開始自學ios,做的事情越多,越覺得自己有越多的東西要學,離大牛的標準也是越來越遠。而無論從深度還是廣度來看,ios開發都是乙個值得挖掘的技術領域。由於蘋果產品的火熱,市場上的ios開發一直供不應求,但真正有能力,高素質的可能真的不那麼多。

ios經典面試題

nil和c語言的null相同,在objc objc.h中定義。nil表示乙個objctive c物件,這個物件的指標指向空 沒有東西就是空 4 動態執行時語言是什麼意思?多型。主要是將資料型別的確定由編譯時,推遲到了執行時。這個問題其實淺涉及到兩個概念,執行時和多型。簡單來說,執行時機制使我們直到執...

ios面試題沒有答案

1.object c的類可以多重繼承麼?可以實現多個介面麼?category是什麼?重寫乙個類的方式用繼承好還是分類好?為什麼?2.如何對ios裝置進行效能測試?3 談談對block 的理解?4 寫出block 的的定義。5 object c中建立執行緒的方法是什麼?如果在主線程中執行 方法是什麼?...

演講面試題目

2014陽明演講與辯論協會演講部面試內容 演講試題一 朗讀 1滿江紅2 山月 怒髮衝冠,憑欄處,瀟瀟雨歇在山中午夜松林像海浪抬望眼,仰天長嘯,壯懷激烈月光替松林剪影 三十功名塵與土你笑著說這不是松 八千里路雲和月管它是什麼深遠的黑透明的藍 莫等閒,白了少年頭,空悲切一點點淡青一片片銀白靖康恥,猶未雪...