1. 類目(category)
為原始的類新增新的方法來簡便使用,例如:對 nsstring 新增去除前後空格的 快捷方法
#import @inte***ce nsstring (help)
/** * 去空白
* */
- (nsstring *)trimstring;
@end
#import "nsstring+help.h"
@implementation nsstring (help)
- (nsstring *)trimstring
@end
2. 延展(extension)
定義自己的私有方法和屬性,不能和外界共用
#import @class mkbutton;
@inte***ce viewcontroller : uiviewcontroller
@end
@inte***ce mkbutton : uibutton
@property (assign, nonatomic) nsinteger flag;// 新屬性
- (void)text; //新方法
@end
#import "viewcontroller.h"
@inte***ce viewcontroller ()
@end
@implementation viewcontroller
- (void)viewdidload
- (void)click:(mkbutton *)btn
- (void)text
- (void)didreceivememorywarning
@end
@implementation mkbutton
- (void)text
@end
3.協議(protocol)
講的是傳值的作用和方法的呼叫,要用到兩個檔名
#import @protocol ******protocol @required //必須遵守的協議[若不寫 則是必須遵守的協議]
- (void)mustrealize:(nsstring *)value;
@optional //可選的協議
- (void)mayberealize:(nsstring *)value;
@end
@inte***ce ******view : uiview
@property (weak, nonatomic) iddelegate;
- (void)choosedelegate;
@end
#import "******view.h"
@implementation ******view
- (instancetype)initwithframe:(cgrect)frame
return self;
}- (void)choosedelegate
if (self.delegate && [self.delegate respondstoselector:@selector(mustrealize:)])
}@end
應用:
類目 延展 協議
1.類目 類目就是為已存在的類新增新的方法。但是不能新增例項變數。比如系統的類,我們看不到他的.m檔案,所以沒有辦法用直接新增方法的方式去實現。inte ce nsmutablearray sort 為nsmutablearray類新增sort方法,sort就是類目名,做到見名知意 void inv...
延展 協議 類目
一.延展 1.延展以 inte ce開頭,然後寫當前延展的類名,類名後加乙個 到 end結束 2.一般延展會寫在自己寫的.m檔案中,把一些不想讓外部呼叫的屬性放在延展裡,這樣這條屬性只能夠在類的內部使用,外部使用不了,盡最大可能保護當前類的安全 3.類目一般是給看不見.m的檔案進行擴充套件,延展一般...
類目, 延展, 協議
1.類目 類目就是為已存在的類新增新的方法。但是不能新增例項變數。比如系統的類,我們看不到他的.m檔案,所以沒有辦法用直接新增方法的方式去實現。inte ce nsmutablearray sort 為nsmutablearray類新增sort方法,sort就是類目名,做到見名知意 void inv...