OC 類的擴充套件

2021-07-04 03:23:09 字數 1936 閱讀 2141

***girl.h***

@protocol

marry

// 協議的內容

// 方法宣告

// @required是必須實現的方法,預設必須實現

// @optional是可選擇執行的方法

@required

- (void)makemoney;

@optional

- (void)cook;

// 2.設定**人屬性

@property(nonatomic, assign)id

delegate;

// 結婚後,協議才正式生效

- (void)getmarry;

// 3.讓**人去執行協議裡的方法

***girl.h***

- (void)getmarry

// 4.引完標頭檔案後,boy需要簽訂協議

boy.h

@inte***ce

boy : nsobject

// 5.設定**人

**

*main.m

*** boy *boy = [[boy alloc] init];

girl *girl = [[girl alloc] init];

girl.delegate = boy;

// 呼叫結婚的方法,來執行內部協議方法

[girl getmarry];

// 6.實現方法makemoney

***boy.m***

- (void)makemoney

// 類目

// 系統寫好的類目:按功能對系統的類方法進行區分

// 類目從@inte***ce開始,後面是當前類的名字,類名後是分類的功能,到@end結束

// 我們建立的類目,一般是為了把一些系統的類進行功能擴充

***nsstring+stringmethod.h***

- (void)sayhi;

// 輸入兩個日期,判斷兩日期是否在同乙個月

- (bool)isequaltwodate:(nsstring *)otherdate;

// 拼接兩個日期

- (nsstring *)format:(nsstring *)otherdate;

// 給定兩個時間,判斷時間是否在兩個時間區內

- (bool)intimezone:(nsstring *)begin end:(nsstring *)end;

// 傳乙個字串,返回時間物件nsdate型別

- (nsdate *)stringchangetodate;

+ (nsdate *)stringchangetodate:(nsstring *)date;

***nsstring+stringmethod.m***

- (void)sayhi

- (void)sayhello

- (bool)isequaltwodate:(nsstring *)otherdate else

}- (nsstring *)format:(nsstring *)otherdate

// 不寫宣告的方法,只能在類的.m檔案中使用(私有方法)

- (void)sunofbeach

// 判斷時間是否在時間區域內

- (bool)intimezone:(nsstring *)begin end:(nsstring *)end

- (nsdate *)stringchangetodate

+ (nsdate *)stringchangetodate:(nsstring *)date

oc 類擴充套件

封裝的特性就是暴露公共介面給外邊呼叫,c 通過public定義公共方法提供給外面呼叫,protected和private定義的方法只能在類裡面使用,外面不能呼叫,若外面呼叫,編譯器直接報錯,對於變數也同理。oc裡面類擴充套件類似protected和private的作用。1.類擴充套件是一種特殊的類別...

OC 類的擴充套件

類的擴充套件 繼承 類目延展 協議 1.類目 category 命名 inte ce 要擴充套件的類名 類目名 end 特點 1.不可定義成員變數,而且一般不定義屬性 2.可以新增方法,可重寫原始類的方法,原始類的物件呼叫 2.延展 extension 命名 寫在.m檔案裡 inte ce 類名 e...

OC總結 類的擴充套件

一 類的擴充套件 一 category 分類或類目 主要的作用 是為沒有源 的類新增方法,通過category新增的方法會成為原類的一部分,從而達到擴充套件乙個類的功能。1 category與subclass的區別 1 category只能為類新增方法,而子類既能為類新增方法又能新增變數 2 cat...