ios面試常見問題

1. Objective-C內存管理機制?

2.Runtime運行機制?

什麼是Runtime?OC是一門動態編程語言,允許很多操作推遲到程序運行時再進行,

平時編寫的OC代碼,底層都是轉換成了Runtime API進行調用

應用

利用關聯對象(AssociatedObject)給分類添加屬性

json轉model

動態爲類添加方法,屬性

動態調用方法,

利用消息轉發機制解決方法找不到的異常問題

OC 的消息機制

OC中的方法調用其實都是轉成了objc_msgSend函數的調用,給receiver(方法調用者)發送了一條消息(selector方法名)

objc_msgSend底層有3大階段:消息發送(當前類、父類中查找)、動態方法解析、消息轉發

 

3.runloop機制

Runloop就是一個事件處理的循環,用來不停的調度工作及處理輸入事件。

Runloop模式  

1.UITrackingRunLoopMode 2.NSDefaultRunLoopMode 3.NSRunLoopCommonModes

4 NSConnectionReplyMode 5 NSModalPanelRunLoopMode

應用

runloop中增加 oberver 監聽mode 耗時

Runloop狀態

1.進入loop -> 2.將要處理Timer ->3.將要處理Source0->4.處理Source0 ->5 即將進入休眠 -> 6休眠,等待被喚醒 ->7 被喚醒 -> 8 退出loop

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