1.類目
類目就是為已存在的類新增新的方法。但是不能新增例項變數。比如系統的類,我們看不到他的.m檔案,所以沒有辦法用直接新增方法的方式去實現。
@inte***ce nsmutablearray (sort) //為nsmutablearray類新增sort方法,sort就是類目名,做到見名知意
-(void)invert;//方法
@end
實現部分
#import "nsmutablearray+sort.h"
@implementation nsmutablearray (sort)
-(void)invert
-(void)text
@end
外界 [student hello]的時候就會列印出「你好」。但是在外界不能呼叫text方法,[student text]是不對的。只能在.m檔案裡邊通過self來呼叫私有方法text。隱藏了內部的實現。
3.協議
(1).協議宣告了可以被其他的類實現的方法。協議本身必不會去實現。
(2).協議不是類,只是乙個其他物件可以實現的介面。
定義乙個協議:
#import
@protocolmarryprotocol
//定義乙個結婚協議,結婚協議也可以繼承其它的協議。
@required //必須遵守的協議,在遵守
marryprotocol
協議的類的.m檔案中去實現裡邊的方法。
- (void)washclothes;
- (void)cook;
@optional //可選的協議
- (void)makemoney;
@end
**(委託)模式:自己有需求,但是讓別人去做。
定義乙個men類
#import
#import "roomservice.h"
@inte***ce men : nsobject
@property(nonatomic,retain)nsstring * name;
@property(nonatomic,assign)id mate;//定義乙個**
-(id)initwithname:(nsstring *)name;
-(void)needeat;
@end
定義乙個women類
#import
#import "
marryprotocol"
@inte***cewomen : nsobject <
marryprotocol> //遵守協議
@property(nonatomic,retain)nsstring * name;
-(id)initwithname:(nsstring *)name;
@end
在men的實現裡邊
-(void)needeat
在women的實現裡邊有乙個方法
-(void)cook
主函式裡邊
men.mate = women;
[men needeat];
列印出:wonmen正在做飯
4.協議也可以寫在乙個類裡邊,用到的時候引入類的標頭檔案就可以。
蘋果開發群 :414319235 歡迎加入 歡迎討論問題
類目 延展 協議
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...