2019最全的iOS面試題及答案

最全的iOS面試題及答案

iOS面試小貼士

———————————————回答好下面的足夠了-------------------------------------

目錄:

基礎
  1. 如何令?自?己所寫的對象具有拷?貝功能?
  2. 說說你理理解weak屬性?
  3. 題?目:Swift mutating關鍵字的使?用?
  4. UIView和 CALayer是什什么關系?
  5. 下?面的代碼輸出什什么?
  6. @synthesize 和 @dynamic 分別有什什么作?用?
  7. 動態綁定
  8. Category(類別)、 Extension(擴展)和繼承的區別
  9. 為什什么代理理要?用weak?代理理的delegate和dataSource有什什么區別?block和代理理 的區別?
  10. id和NSObject*的區別
  11. 如何令?自?己所寫的對象具有拷?貝功能?
  12. 使?用系統的某些block api(如UIView的block版本寫動畫時),是否也考慮引?用 循環問題?
  13. ?用@property聲明的NSString(或NSArray,NSDictionary)經常使?用copy關鍵 字,為什什么?如果改?用strong關鍵字,可能造成什什么問題?
  14. UIView和 CALayer是什什么關系?
  15. static有什什么作?用?
底層:
  1. main()之前的過程有哪些?
  2. KVO基本原理理?
  3. Swift 下的如何使?用 KVC?
  4. :Swift有哪些模式匹配?
  5. objc在向?一個對象發送消息時,發?生了了什什么?
  6. 靜態庫的原理理是什什么?你有沒有?自?己寫過靜態編譯庫,遇到了了哪些問題?
  7. runloop是來做什什么的?runloop和線程有什什么關系?主線程默認開啟了了runloop 么??子線程呢?
  8. 不不?手動指定autoreleasepool的前提下,?一個autorealese對象在什什么時刻釋放? (?比如在?一個vc的viewDidLoad中創建
  9. 不不?手動指定autoreleasepool的前提下,?一個autorealese對象在什什么時刻釋放? (?比如在?一個vc的viewDidLoad中創建)
  10. OC完整的消息轉發機制+代碼實現【暴暴擊】
  11. 以+ scheduledTimerWithTimeInterval...的?方式觸發的timer,在滑動?頁?面上的 列列表時,timer會暫定回調,為什什么?如何解決?
  12. 如何?手動觸發?一個value的KVO
  13. 如何對定位和分析項?目中影響性能的地?方?以及如何進?行行性能優化?
  14. 串串?行行并?行行,異步同步的區別?
  15. 線程是什什么?進程是什什么??二者有什什么區別和聯系?
  16. RunLoop是什什么?
  17. 假設有?一個字符串串aabcad,請寫?一段程序,去掉字符串串中不不相鄰的重復字符 串串,即上述字符串串處理理之后的輸出結果為:aabcd @autoclosure(?自動閉包)
  18. iOS app啟動如何優化?
  19. swift?面試題:
  20. 怎樣防?止反編譯?
  21. UITableView性能優化,超實?用
    線程:
  22. 不不要阻塞主線程
  23. 談談你對多線程開發的理理解?ios中有?幾種實現多線程的?方法?
  24. 進程和線程的區別?同步異步的區別?并?行行和并發的區別?
  25. ViewController?生命周期
  26. iOS 中的多線程
  27. 內存管理理的?幾條原則時什什么?按照默認法則.那些關鍵字?生成的對象 需要?手動釋放?在和property結合的時候怎樣有效的避免內存泄露露? 誰申請,誰釋放
  28. dispatch_barrier_async的作?用是什什么?
  29. 如何?用GCD同步若?干個異步調?用?(如根據若?干個url異步加載多張圖?片,然后在 都下載完成后合成?一張整圖)
http:
  1. http與https的區別?
  2. 服務器?能否知道APNS推送后有沒有到達客戶端的?方法?
app:
  1. 1.什什么?方式可以看到上架App的頭?文件?
    2.閱讀過哪些框架的源碼?能說說它的架構?方式嗎
  2. iOS iAP內購審核可能失敗的問題

IAP內購中虛擬貨幣導致審核?無法通過的問題?

基礎:

1、如何令?自?己所寫的對象具有拷?貝功能?
如果想讓?自?己的類具備copy?方法,并返回不不可邊類型,必須遵循nscopying協議,并 且實現
- (id)copyWithZone:(NSZone *)zone
如果讓自?己的類具備mutableCopy方法,并且放回可變類型,必須遵守NSMutableCopying并實現- (id)mutableCopyWithZone:(nullable NSZone *)zone注意:再此說的copy對應不不可邊類型和mutableCopy對應不不可邊類型?方法,都是遵從 系統規則?而已。如果你想實現?自?己的規則,也是可以的。

2、 釋放時,調?用clearDeallocating函數。clearDeallocating函數?首先根據對象地址 獲取所有weak指針地址的數組,然后遍歷這個數組把其中的數據設為nil后把這個entry從weak表中刪除,后清理理對象的記錄。

追問的問題?:
1.實現weak后,為什么對象釋放后會自動為nil

runtime?對注冊的類, 會進?行行布局,對于?weak?對象會放?入?一個?hash?表中。 ?用?weak?指向的對象內存地址作為?key,當此對象的引?用計數為?0?的時候會? dealloc,假如?weak?指向的對象內存地址是?a?,那么就會以?a?為鍵, 在這個? weak?表中搜索,找到所有以?a?為鍵的?weak?對象,從?而設置為?nil?。

由于太長只能寫到這里 需要這份面試題的朋友可以到群里:763164022直接下載學習,群里不僅有面試資料還有群友在聊技術,群里全是iOS開發者,希望大家共同進步!

image.png
image.png

image.png
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容