iOS 教你寫通用的description方法

2021-07-16 14:32:46 字數 1376 閱讀 9526

/**

*@property (readonly, copy) nsstring *description;

* description是nsobject的乙個唯讀屬性,對於一般的屬性都會有getter和setter方法,但是readonly的屬性顧名思義就只有getter方法啦。

* 當你在xcode控制台使用po命令列印乙個物件的時候,如果沒有重寫description方法,往往列印出的結果就是「類名+記憶體位址」,當然,我們只對繼承自nsobject的非responder類物件感興趣

* 細心的你會發現uiresponder也是繼承自nsobject

* 這就是為什麼uiviewcontroller、uiview等控制項們也有description方法了

* description 描述的意思,顧名思義就是說乙個物件有什麼屬性,每個屬性對應的屬性值是什麼

* 關於怎樣重寫description方法,不管是聽說還是看部落格,相信你一定有自己的想法了。關於如何寫乙個拷貝到**都能用的通用description方法,請先拷貝以下**到你的類中,測試一下,看看有沒有感覺很爽

* 在拷貝**之後如果你看到了紅色的報錯,說明你忘記import "objc/runtime.h"啦,至於runtime是什麼鬼東西,網上有很多部落格,我知道自己寫不好關於這鬼的部落格,在這裡也就不妖言惑眾了。

*/- (nsstring *)description

}free(properties);

return desc;

}

如果你對上文說的po命令感興趣的話,不妨再花半分鐘往下看

在這裡我打了個斷點,你可以看到self的各個屬性以及它們的值,除此之外,還有兩個區域性變數usermodel物件user和someview物件v,以及它們的屬性名和屬性值

下面就要秀一下 po命令了:

在這裡我列印了user和v,得益於給它們寫的description方法,我很容易清楚的知道它們都有什麼屬性和屬性值。

細心的你也許會發現,usermodel的description方法並沒有列印出類名和位址,說明我沒有呼叫[super description]方法,而someview呼叫了[super description]方法。

當然po還可以列印出更多你想要的東西

例如下面:

這次就說到這裡了,祝好。

教你寫軟文的九個絕招

1.軟文找準你的受眾,分析您的受眾,多談一些他們感興趣故事,有趣的資訊。有需求你的軟文才有市場,才會有人去看,想去了解。2.標題黨,我個人認為比較有名的是類似傳銷的標題,乙個農民工通過學習什麼月入幾百萬。什麼緋聞啊。多看報紙還是有用的。3.切忌浮躁,軟文不軟,一開始就是廣告。這樣讀者瞄了兩眼就沒有興...

自己寫的通用分頁儲存過程

新手乙個,寫的最簡單的儲存過程分頁,上 吧,還請大神們多多調教!1 use bms 2go 3 object storedprocedure dbo pages script date 12 21 2015 11 48 57 4 set ansi nulls on5go 6set quoted id...

java讀檔案,寫檔案的通用方法

在讀檔案和寫檔案的時候用到比較多的為 file,fileinputstream,filereader,inputstreamreader,bufferedreader 在此先介紹上面幾個常用的類 1.file類 很明顯,給乙個位址,就可以構造乙個file物件 file file new file d...