2011-07-14 20 views
4

請問類名稱UIImage+SomethingUIImageView+Somethingelse是否意味着它的行爲類似於自定義UIImageUIImageViewObjective-C類名帶有+

回答

14

我想你正在尋找類別的文件名,而不是類。 Objective-C中的類名稱或任何其他標識符不允許使用加號字符+

Objective-C類是一種將方法(但不是實例變量)添加到不一定有源的類的方法。例如,如果您經常想要製作UIImage的顛倒副本,則可以使用類別將upsideDownImage方法添加到UIImage類中。

將此代碼保存在名爲UIImage+UpsideDown.m(附帶頭文件,UIImage+UpsideDown.h)的文件中很常見。

+3

向Cocoa提供的類中添加新方法通常是一個非常糟糕的主意,但不確保該名稱的合理唯一性。如果你想這樣做,你應該選擇一個前綴並將其放在選擇器的開始處(就像你使用類名稱一樣)。如果你不這樣做,蘋果將來會用同樣的名字提供他們自己的方法,你的類將會覆蓋它,並且可能會導致代碼中的錯誤,認爲它調用了Apple實現的方法。 –

+0

好點,凱文,雖然我覺得大代是在解釋這段代碼,而不是寫它。 – benzado

+0

@Benzado:只是澄清一下:它純粹是一種慣例,Objective-C類別可以存儲在任何'.m'文件中,對嗎? –