OC中的類目與協議

1.類目最大的作用:Category
優點:類目可以爲一個現有的類擴展新的方法,擴展的方法會成爲原始類的一部分
且類目擴展的方法,子類也能繼承下來
缺點:類目可以覆蓋現有類的方法,覆蓋後原始方法無法調用,不能爲類擴展實列屬性


2.類目一般使用的兩種方法:
(1)、自己創建新的類,修改類 命名規則:類名+擴展方法
聲明類目
@interface NSString(Extension)
//覆寫方法
-(NSUInteger)length;
@end
(2)、在類的實現文件中擴展,叫延展,在.m中定義類目
/*@Interface Person() person 可以不寫
-(void)_showInfo;
@end*/   //以前的版本  現在不需要了  相當於私有方法


.m中是可以定義屬性的
(void)showInfo
{
-NSLog(@"輸入此人的身份信息");
}
@end


=====================================================




3.協議的定義     協議是定義了一組方法,讓其他類實現。協議本身不是類
@required:表示必須實現的方法
@optional:表示可選的實現方法


@protocol wxhlProtocol<NSObject>
@required
…………
@optional


@end


協議就相當於多建了一個頭文件,也是.h文件嘛  每個類可以有自己的實現 協議定義在自己頭文件中也無所謂
4.協議的實現
@interface Student:NSObject<wxhlProtocol>
@end
@implementation Student
……………
@end
#pragma mark - Wxhlprotocol協議方法  分類
#warning 代碼過幾天在補充     警告
  //判斷wearNeat可選方法是否在Enginer中定義
    if([p respondsToSelector:@selector(wearNeat)])
===================================================




5.定時器NSTimer
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerAction:) userInfo:@"參數" repeats:YES];


-(void)timerAction:(NSTimer *)timer
{
index++;
NSLog(@"index=%ld",index);
if(index==5)
{
//終止定時器
[timer invalidate];
}
}
//NSRunLoop 讓程序始終處於運行狀態
[[NSRunLoop currentRunLoop]run];


6.代理設計模式
這是一種思想:
1.多態 id <協議>_delegate;
2.協議做父親類;
3.定時器的熟練使用;
很多事情自己都不需要做,找個代理 按照協議來做事 自己只需管好代理





   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章