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