iOS -- Effective Objective-C 閱讀筆記 (7)

來源:互聯網
上載者:User

標籤:類型   代碼   命名   建立   ret   方式   編程   不可變   title   

1: 實現 description 方法

NSlog 在輸出自訂的類時, 只輸出了 類名 和 對象的記憶體位址. 要想輸出更為有用的資訊也很簡單, 只需要覆寫 description 方法並將描述此對象的字串 返回即可.

- (NSString*)description{

return     xxxxxxx;

}

 

有個簡單的辦法, 可以在 description 中輸出很多互不相同的資訊, 那就是藉助 NSDictionary 類的 description 方法.

- (NSString *)description{

return  [NSString stringWithFormat:@"%@",@{@"title: _title, @"age":@(_age)"}];

}

 

NSObject 協議中還有一個方法  debugDescription , 此方法的用意與 description 非常相似, 二者的區別在於,  debugDescription 方法是開發人員在調試器中以控制台命令 列印對象時才調用的.  在 NSObject  的預設實現中, 此方法只是直接調用了 description 

使用方法, 我們在建立執行個體所用的代碼後面插入斷點, 然後通過調試器, 使其暫停於此, 當程式運行到斷點時, 開發人員就可以向調試器控制台中輸入命令了,  

‘po‘ 命令, 可以完成對象列印的 (prient-object) 工作.

同樣, 你也可以覆寫 debugDescription 的方法, 使其更合你意.

 

總結:

實現 description 方法返回一個有意義的字串, 用以描述該執行個體

若想在調試時列印出更詳細的對象描述, 則應實現 debugDescription 方法,  ‘po‘ 命令, 列印對象

 

 

2: 盡量使用不可變對象

設計類的時候, 應充分運用屬性來封裝資料. 而在使用屬性時, 則可將其生命為 ‘唯讀‘. 預設情況下, 屬性是 ‘可讀可寫的‘, 這樣設計出來的類都是 ‘可變的‘. 不過, 一般情況下,我們要建模的資料未必需要改變.

 具體到編程實踐中,則盡量把對外公布出來的屬性設為唯讀, 而且在只有卻又必要的時候對外公布.

 

總結:

盡量建立不可變的對象

 

 

3: 使用清晰而協調的命名方式

盡量使用  ‘駝峰式大小寫命名法‘ 

方法命名 長度要適中, 表達清晰, 且言簡意賅.

給方法命名時的注意事項

(1) 如果方法的傳回值是新建立的, 那麼方法名的首個詞應是傳回值的類型, 除非前面還有修飾語.屬性的存取方法不遵循這種命名方式.  屬性的存取方法應該按照其對應的屬性來命名.

(2) 應該把表示參數類型的名詞放在參數前面.

(3) 如果方法要在當前對象上執行操作. 那麼就應該 包含動詞, 若執行操作時還需要參數. 則應該在動詞後面加上 一個 或多個名詞.

(4) 不要使用 str 這樣的簡稱, 而應該使用 String 這樣的全稱.

(5) Boolen  屬性應加上 is 首碼, 如果某方法返回非屬性的 Boolean 值, 那麼應該根據其功能, 選用 has 或  is 當首碼.

(5) 將 get 這個首碼 留給那些 藉由 ‘ 輸出參數‘ 來儲存傳回值的方法.

 

類與協議的命名

應該為類與協議的名稱加上首碼, 以避免命名空間衝突. 而且應該像給方法起名時那樣吧詞句組織好, 使其從左至右讀起來較為通順.

類 與 協議的命名慣例, 命名方式應該協調一致. 

 

總結:

起名時應遵循從標準的 OC 命名規範

方法名要言簡意賅, 從左至右讀起來順暢

方法名裡不要使用縮減後的類型名稱

 

為私人方法命名規範

以 ‘p_‘ 開頭命名私人方法, 這樣容易區分

不要但用一個底線 ‘_‘ 做私人方法的首碼, 因為這種方法是預留給蘋果公司的.

iOS -- Effective Objective-C 閱讀筆記 (7)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.