簡體   English   中英

編寫類別時,我應該使用self還是類別名稱

[英]When writing a category, should i use self or the category name

編寫NSString類別/擴展名時,是否使用

return [self stringWithFormat:units[i], value/10.0];

要么

return [NSString stringWithFormat:units[i], value/10.0];

使用self有優勢self或者這是那些用戶偏好設置之一

(我假設所討論的擴展方法是一個類方法。似乎有些混亂導致投票失敗;這是一個很好的問題。)

通常,您應在此處使用self 這樣,如果子類重寫了該方法,則將使用該方法的子類版本。 子類可以覆蓋類方法,就像它們可以覆蓋實例方法一樣。

就是說, NSString是一種有趣的情況,因為它是一個類集群,因此其任何隱藏的子類都重寫此類方法將是非常令人驚訝的(並且自己對它進行子類化充其量是棘手的)。 因此在實踐中,對於NSString ,幾乎可以肯定沒有關系。 但是通常,您有正確的直覺:除非明確希望使用子類的實現,否則請使用self

有一個大例外: +initialize 您需要對所上的課程非常謹慎,因為這可能會被多次調用。 如果您要覆蓋+initialize ,請參閱其文檔以了解如何正確實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM