日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ios面试心得

發布時間:2025/5/22 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios面试心得 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

第一部分:面試題

?

注意,下面這些題只是我準備的題庫。在實際面試的時候我會根據面試者的水平抽出相應的題目來出的。

技術

基礎

?

  • 為什么說Objective-C是一門動態的語言?

  • 講一下MVC和MVVM,MVP?

  • 為什么代理要用weak?代理的delegate和dataSource有什么區別?block和代理的區別?

  • 屬性的實質是什么?包括哪幾個部分?屬性默認的關鍵字都有哪些?@dynamic關鍵字和@synthesize關鍵字是用來做什么的?

  • 屬性的默認關鍵字是什么?

  • NSString為什么要用copy關鍵字,如果用strong會有什么問題?(注意:這里沒有說用strong就一定不行。使用copy和strong是看情況而定的)

  • 如何令自己所寫的對象具有拷貝功能?

  • 可變集合類 和 不可變集合類的 copy 和 mutablecopy有什么區別?如果是集合是內容復制的話,集合里面的元素也是內容復制么?

  • 為什么IBOutlet修飾的UIView也適用weak關鍵字?

  • nonatomic和atomic的區別?atomic是絕對的線程安全么?為什么?如果不是,那應該如何實現?

  • UICollectionView自定義layout如何實現?

  • 用StoryBoard開發界面有什么弊端?如何避免?

  • 進程和線程的區別?同步異步的區別?并行和并發的區別?

  • 線程間通信?

  • GCD的一些常用的函數?(group,barrier,信號量,線程同步)

  • 如何使用隊列來避免資源搶奪?

  • 數據持久化的幾個方案(fmdb用沒用過)

  • 說一下AppDelegate的幾個方法?從后臺到前臺調用了哪些方法?第一次啟動調用了哪些方法?從前臺到后臺調用了哪些方法?

  • NSCache優于NSDictionary的幾點?

  • 知不知道Designated Initializer?使用它的時候有什么需要注意的問題?

  • 實現description方法能取到什么效果?

  • objc使用什么機制管理對象內存?

  • ?

    中級

    Block

    ?

  • block的實質是什么?一共有幾種block?都是什么情況下生成的?

  • 為什么在默認情況下無法修改被block捕獲的變量? __block都做了什么?

  • 模擬一下循環引用的一個情況?block實現界面反向傳值如何實現?

  • ?

    Runtime

    ?

  • objc在向一個對象發送消息時,發生了什么?

  • 什么時候會報unrecognized selector錯誤?iOS有哪些機制來避免走到這一步?

  • 能否向編譯后得到的類中增加實例變量?能否向運行時創建的類中添加實例變量?為什么?

  • runtime如何實現weak變量的自動置nil?

  • 給類添加一個屬性后,在類結構體里哪些元素會發生變化?

  • ?

    RunLoop

    ?

  • runloop是來做什么的?runloop和線程有什么關系?主線程默認開啟了runloop么?子線程呢?

  • runloop的mode是用來做什么的?有幾種mode?

  • 為什么把NSTimer對象以NSDefaultRunLoopMode(kCFRunLoopDefaultMode)添加到主運行循環以后,滑動scrollview的時候NSTimer卻不動了?

  • 蘋果是如何實現Autorelease Pool的?

  • ?

    類結構

    ?

  • isa指針?(對象的isa,類對象的isa,元類的isa都要說)

  • 類方法和實例方法有什么區別?

  • 介紹一下分類,能用分類做什么?內部是如何實現的?它為什么會覆蓋掉原來的方法?

  • 運行時能增加成員變量么?能增加屬性么?如果能,如何增加?如果不能,為什么?

  • objc中向一個nil對象發送消息將會發生什么?(返回值是對象,是標量,結構體)

  • ?

    高級

    ?

  • UITableview的優化方法(緩存高度,異步繪制,減少層級,hide,避免離屏渲染)

  • 有沒有用過運行時,用它都能做什么?(交換方法,創建類,給新創建的類增加方法,改變isa指針)

  • 看過哪些第三方框架的源碼?都是如何實現的?(如果沒有,問一下多圖下載的設計)

  • SDWebImage的緩存策略?

  • AFN為什么添加一條常駐線程?

  • KVO的使用?實現原理?(為什么要創建子類來實現)

  • KVC的使用?實現原理?(KVC拿到key以后,是如何賦值的?知不知道集合操作符,能不能訪問私有屬性,能不能直接訪問_ivar)

  • ?

    項目

    ?

  • 有已經上線的項目么?

  • 項目里哪個部分是你完成的?(找一個亮點問一下如何實現的)

  • 開發過程中遇到過什么困難,是如何解決的?

  • ?

    學習

    ?

  • 遇到一個問題完全不能理解的時候,是如何幫助自己理解的?舉個例子?

  • 有看書的習慣么?最近看的一本是什么書?有什么心得?

  • 有沒有使用一些筆記軟件?會在多平臺同步以及多渠道采集么?(如果沒有,問一下是如何復習知識的)

  • 有沒有使用清單類,日歷類的軟件?(如果沒有,問一下是如何安排,計劃任務的)

  • 平常看博客么?有沒有自己寫過?(如果寫,有哪些收獲?如果沒有寫,問一下不寫的原因)

  • 有關技術類的問題可以在評論區留言,我重點說一下這輪面試的心得和體會。

    ?

    第二部分:心得

    ?

    面試者千萬不要答非所問

    ?

    如果讓我選一個讓面試官覺得印象減分的點,答非所問應該是首當其沖的。

    ?

    面試者一定要知道面試官問的點是什么。

    ?

    • 如果在知道面試官問的點,但是自己卻不知道答案的時候,可以提出思路,思考過程。其實有幾次面試者在我的引導下很容易就把答案說出來了,認清問題的點是解決問題的一半。

    • 如果沒有理解好面試官問的問題,一定要事先和面試官確認好。

    ?

    其實這也屬于溝通能力的一點:如果不能保證和對方溝通內容的一致性,自己弄個filter把對方的話都曲解了,以后合作的時候又怎能保證溝通好呢?

    ?

    面試者一定不要來得太早

    ?

    這里說的來得太早,是來得太早并告知面試官自己已經來了。

    ?

    因為在約定好的面試時間之前,往往面試官還有別的事情在做,如果他知道你來的很早,就可能會擾亂他的計劃。有一位面試者早來了1個小時,結果把我們的面試計劃打亂了,而且正好是我的第一次面試,所以真的是有點措手不及。

    ?

    求職者和公司定下來的時間屬于一個約定,約定是要遵守的。而且遵守約定同樣也是對對方的尊重。如果入職之前都沒能把握好,入職之后又如何能保證把握好呢?

    實踐與理論的脫節,讓人很不安

    ?

    能做出來項目,但是基礎知識很薄弱

    ?

    幾乎每位面試者都能給我展示他做的一些app,雖然沒有很難的功能,但也都算是有板有眼。可讓我比較意外的是,雖然能做出有模有樣的app,但當我問到很多基礎的問題的時候卻答不上來,比如屬性和成員變量的區別,屬性的默認關鍵字,Designated Initializer的概念等等。。

    ?

    這不禁讓我懷疑他們的代碼的穩定性,更懷疑他們治學,做技術的態度。

    ?

    雖說技術活需要實踐的磨練,但和理論脫節的技術是鉆不深的。可能有人會說我的面試題過于理論,實際中用不到。但有些時候,在實際開發中遇到的一些問題往往就是因為一些很基本的東西沒有弄清導致的,相信你我都深有體會。

    ?

    而且,我們都知道技術的提升是階梯式的。什么是階梯式的呢?就是可能我們會有比較長的時間才會有一個突破。但這個突破來的有多快,提升的有多高,是跟平時每個細小知識點的掌握程度是分不開的。

    ?

    因為知識也是有復利效應的,準確地掌握越多的知識點,在以后的學習過程中,這些知識點相互之間想成的積極作用會越來越大:對新知識的理解更快,對問題的定位會更準,解決問題的方法也會越多。相反,如果你每個問題都得過且過,這些結果的復合作用就會導致你今后很難會有所突破了。

    ?

    真的可能被簡歷騙到

    ?

    上家的薪資很高,但是實際能力很不符

    ?

    有一位面試者在簡歷里號稱上一個工作拿了15k,但當我問到NSString屬性使用strong還是copy作為關鍵字的時候他卻說是strong,甚至連delegate都拿不準使用strong還是weak,我就有些奇怪了。

    ?

    看技術博客和技術書籍的人還是很少的

    ?

    只依賴于公司里的項目應該是不夠的,畢竟不是每個公司里都有上乘的代碼和技術

    ?

    面試了大概20個人,但是真正有看過技術博客和技術書籍的真的不多,更別提Github了。不過其中一位面試通過者是有github賬號的,并且有幾個小項目,印象非常好,加了不少分。

    ?

    我相信在這一行的未來,簡歷里面github賬號和博客絕對會越來越受重視:

      • 一方面簡歷真的是應接不暇,而且同時千篇一律,很難找出亮點。

      • 另一方面,如果可以把自己的代碼和成長展示給招聘公司,就會使得自己的能力在公司面前變得更加純粹和透明,更有助于找到適合你自己的公司。

        ?

    轉載于:https://www.cnblogs.com/fengmin/p/7068238.html

    總結

    以上是生活随笔為你收集整理的ios面试心得的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。