2012-02-16 60 views
0

我很多次見過程序員需要分配一些值(對象或原始類型,無所謂)的情況。讓我們說這個值是一個NSString,可以從以下表達式聲明並實現一種方法,它自己執行一行代碼

[myObject description]// returns NSString 

獲得但由於某些原因,我見過很多人宣稱自己返回一個NSString,只執行上面的命令的另一種方法。喜歡:

-(NSString*)getDescription{ 
    return [myObject description]; 
} 

這只是一個偏好問題,還是有一些好處嗎?

+0

請注意,沒有方法應該有'get *'前綴,除非它遵循特定的模式(這不是)。它應該只是'描述'。 – bbum 2012-02-16 07:41:41

回答

2

這只是一個偏好問題,還是有一些利益呢?

那些一行包裝經常被用來:

  • 引入意在覆蓋
  • 或(更頻繁地),以簡化該程序的方法的行爲。如果方法不存在,您可能會發現程序的複雜性增加。它用於演示意圖,清晰,文檔,並儘量減少冗餘實現(簡化程序)。
1

肯定是有一些創建的方法,甚至更好,覆蓋「標準」 NSObject描述方法的「好處」 ..

如果你有,例如自定義NSObject並重寫+(NSString *)description方法,你可以再返回直接在該對象內部的信息。

舉例來說,在我們稱爲foo的NSObject中覆蓋了以下內容。

+ (NSString *)description { 
    return @"Hello there"; 
} 

現在,如果你曾經被稱爲[foo description]它會返回字符串「你好」。 但是,如果你只是返回描述而不覆蓋描述方法,它會返回類似<foo>0x12234之類的東西。

所以是的,它肯定有很多好處覆蓋自定義NSObject描述。

相關問題