記錄 類目,延展,協議

2021-07-09 05:51:55 字數 2268 閱讀 1606

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...