一、description方法
description方法包括類方法和物件方法。(
nsobject
類所包含)
(一)基本知識
-description(物件方法)
使用nslog和@%
輸出某個物件時,會呼叫物件的
description
方法,並拿到返回值進行輸出。
+description(類方法)
使用nslog和@%
輸出某個物件時,會呼叫類物件的
description
方法,並拿到返回值進行輸出,把整個物件一次性列印出來,列印物件使用%@。
使用@%
列印物件如(「@%」,p)預設列印輸出為
<
>
,雖然字串也是物件,但字串在使用
@%列印時情況特殊。
那麼應該怎麼實現列印物件的所有屬性呢?在類的實現中重寫description
方法。
(二)實現列印物件的所有屬性
(三)區別
+description方法決定了類物件的輸出結果,即類本身
-description方法決定了例項物件的輸出結果,即
person
建立的物件。
(四)列印相關補充
二、sel
sel:全稱
selector
表示方法的儲存位置。
方法在記憶體中是怎麼儲存的?
尋找方法的過程:
(1)首先把test
這個方法名包裝成
sel型別的資料;
(2)根據sel
資料找到對應的方法位址;
(3)根據方法位址呼叫相應的方法。
(4)注意:
在這個操作過程中有快取,第一次找的時候是乙個乙個的找,非常耗效能,之後再用到的時候就直接使用。
關於_cmd:
每個方法的內部都有乙個
-cmd,
代表著當前方法。
注意:sel其實是對方法的一種包裝,將方法包裝成乙個
sel型別的資料,去尋找對應的方法位址,找到方法位址後就可以呼叫方法。這些都是執行時特性,發訊息就是傳送
sel,然後根據
sel找到位址,呼叫方法。
OC語言description方法和sel
oc語言 description 方法和sel 一 description方法 description方法包括類方法和物件方法。nsobject 類所包含 一 基本知識 description 物件方法 使用nslog和 輸出某個物件時,會呼叫物件的 description 方法,並拿到返回值進行輸...
OC語言description方法和sel
oc語言 description 方法和sel 一 description方法 description方法包括類方法和物件方法。nsobject 類所包含 一 基本知識 description 物件方法 使用nslog和 輸出某個物件時,會呼叫物件的 description 方法,並拿到返回值進行輸...
OC語言description方法和sel
oc語言description方法和sel 一 description方法 description方法包括類方法和物件方法。nsobject類所包含 一 基本知識 description 物件方法 使用nslog和 輸出某個物件時,會呼叫物件的description方法,並拿到返回值進行輸出。des...