Isa指針是對象指向類對象的指針,類對象指向元類對象。對象方法和類方法分別存儲在類對象和元類對象中。在消息傳遞機制中,方法的實際調用地址是通過isa指針找到的。
當objc向壹個對象發送消息時,運行時庫會根據該對象的isa指針找到該對象實際所屬的類,然後在該類的方法列表及其父類的方法列表中尋找要運行的方法。然後在發送消息的時候,objc_msgSend方法不會返回值,所謂的返回內容都是在具體調用的時候執行的。然後,回到這個話題,如果妳給壹個nil對象發送消息,首先,當妳尋找對象的isa指針時,返回的是0地址,所以不會有錯誤。
更多:iOS面試問題集