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