0
假設我們有一個從UILabel
繼承一個類的定製lib目錄下:防止自定義類
//MyLibCustomLabel.h
@interface MyLibCustomLabel : UILabel
MyLibCustomLabel
被鏈接到一個UILabel在.xib
文件和文本填充的.xib。
這種定製LIB被集成在具有Category
上UILabel
類的一個項目,其具有修改UIlabel
的文本
//UILabel+UILabelAdditions.h
@interface UILabel (UILabelAdditions)
//UILabel+UILabelAdditions.m
@implementation UILabel (UILabelAdditions)
- (void)awakeFromNib {
[super awakeFromNib];
[self prependText];
}
-(void)prependText {
NSString *newText = [NSString stringWithFormat:@"blabla + %@", self.text];
self.text = newText;
}
最後,有一個修改非期望在MyLibCustomLabel
的方法。
在這兩個自定義類和類別的情況在類中使用,是爲了保護MyLibCustomLabel
從任何的UILabel類的方法嗎?
這樣MyLibCustomLabel
不能以不希望的方式被改變,因此沒有修改在集成它的項目做。
感謝您的幫助!
感謝您的回答。我根據我見過的東西做了這個例子。在我身邊,我試圖「保護」MyLibCustomLabel。你有點確認我的恐懼,那是不可能的。我會留下多一點的問題來收集其他意見,但您正在尋找答案。再次感謝 – Niko
這樣想。類別只能用於將新方法添加到您無權訪問的現有類中。永遠不要使用類別來改變類的行爲。但是,如果開發人員以錯誤的方式編寫類別,並最終導致圖書館中的類出現問題,那麼編寫不良類別的開發人員就會出錯,他們將承擔後果。我根本不用擔心。 – rmaddy
是的,我知道,但我首先嚐試了所有可能的事情......你知道蘋果公司是否有某種官方指導方針顯示你在說什麼?所以,我可以把它送到了一個有關... ^^」 – Niko