OC語言description方法和sel

2021-07-09 14:34:46 字數 1361 閱讀 3450

oc語言

description

方法和sel

一、description方法

description方法包括類方法和物件方法。(

nsobject

類所包含)

(一)基本知識

-description(物件方法)

使用nslog和@%

輸出某個物件時,會呼叫物件的

description

方法,並拿到返回值進行輸出。

+description(類方法)

使用nslog和@%

輸出某個物件時,會呼叫類物件的

description

方法,並拿到返回值進行輸出,把整個物件一次性列印出來,列印物件使用%@。

使用@%

列印物件如(「@%」,p)預設列印輸出為

<

>

,雖然字串也是物件,但字串在使用

@%列印時情況特殊。

那麼應該怎麼實現列印物件的所有屬性呢?在類的實現中重寫description

方法。

(二)實現列印物件的所有屬性

(三)區別

+description方法決定了類物件的輸出結果,即類本身

-description方法決定了例項物件的輸出結果,即

person

建立的物件。

(四)列印相關補充

二、sel

sel:全稱

selector 

表示方法的儲存位置。

方法在記憶體中是怎麼儲存的?

person *p=[[person alloc] init];

[p test];

尋找方法的過程:

(1)首先把test

這個方法名包裝成

sel型別的資料;

(2)根據sel

資料找到對應的方法位址;

(3)根據方法位址呼叫相應的方法。

(4)注意:

在這個操作過程中有快取,第一次找的時候是乙個乙個的找,非常耗效能,之後再用到的時候就直接使用。

關於_cmd:

每個方法的內部都有乙個

-cmd,

代表著當前方法。

注意:sel其實是對方法的一種包裝,將方法包裝成乙個

sel型別的資料,去尋找對應的方法位址,找到方法位址後就可以呼叫方法。這些都是執行時特性,發訊息就是傳送

sel,然後根據

sel找到位址,呼叫方法。

OC語言description方法和sel

一 description方法 description方法包括類方法和物件方法。nsobject 類所包含 一 基本知識 description 物件方法 使用nslog和 輸出某個物件時,會呼叫物件的 description 方法,並拿到返回值進行輸出。description 類方法 使用nslo...

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...