OC中的类目与协议

来源:互联网 发布:苹果udid定制软件 编辑:程序博客网 时间:2024/05/01 17:15
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.定时器的熟练使用;
很多事情自己都不需要做,找个代理 按照协议来做事 自己只需管好代理





   
0 0
原创粉丝点击