1.oc是的超集,c語言使用的是靜態綁定。也就說在編譯期就能決定運行時所對應調用的函數。
2.objc_msgSend函數會一句接受者與方法的類型來調用適當的方法,為了完成此操作,該方法需要在接受則所屬的類中搜尋其方法列表。如果能找到與選擇子名稱相符的方法,就跳至其實現代碼,若找不到,那就沿著繼承體系繼續向上查找,等找到合適的方法之后在跳轉。如果最終還是找不到相符的方法,那就執行消息轉發(message forwarding)操作。
1.oc是的超集,c語言使用的是靜態綁定。也就說在編譯期就能決定運行時所對應調用的函數。
2.objc_msgSend函數會一句接受者與方法的類型來調用適當的方法,為了完成此操作,該方法需要在接受則所屬的類中搜尋其方法列表。如果能找到與選擇子名稱相符的方法,就跳至其實現代碼,若找不到,那就沿著繼承體系繼續向上查找,等找到合適的方法之后在跳轉。如果最終還是找不到相符的方法,那就執行消息轉發(message forwarding)操作。