OC中继承代理委托类别

1,类别的意义


//      类别:类的扩展,能够向已有的类中添加新的方法(“属性”)
//           并且添加的代码不用写在已有的类中
//           但是,添加的方法属于这个已有的类。




//一个类别要知道是谁的类别,所以要在类别的.h文件当中导入扩展类的头文件
//一般情况下这个头文件由系统自动添加。






//类别定义格式:
//@interface 扩展类名(类别名)
//一般情况下,也由系统自动创建






//在类别中声明的方法必须实现,如果不想实现那就不要声明
//当然,不实现也不会抱错,但是会有隐患.




ps
//        关于类别中添加属性的特别说明:
//        类别中本质上是不允许添加属性的,因为类别中
//        不允许添加@synthesize。所以,添加的属性没有办法访问到
//        如果强制调用就会有很多❌错误
        
//        凡事都有例外;在IOS开发过程阶段,类别会和类
//        写在同一个文件当中,这个时候就能够使用类别
//        添加的属性了。。。。




不光能给自己创建的类添加类别,还能给系统的类添加
添加类别实际上就是添加方法二不去动原来的类。










2,类别的作用


类别能够在不动相应的类的前提下给类增加方法。




3,匿名类别






//在匿名类别(延展)中声明方法必须在对应类实现这个方法
//匿名类别不能对看不到.m文件的类扩展。
//匿名类别和类别在使用的时候有什么区别




//匿名类别(延展)在导入头文件的时候必须写在.m中
//原因:没有原因。


4,协议 
             #import <Foundation/Foundation.h>


@protocol Biaobai <NSObject>
//协议中写的是方法的声明,实现协议就是实现了协议中声明的方法。


@optional
-(void)biaobai;


//协议中声明的方法没有特殊情况的话可以不用都实现。
-(void)huashibiaobai;




//@optional可选实现或不实现的
//@required必须实现的
@end






 //一个类去拜托另一个类的对象去做这个类不会做的方法
        //寻找代理,委托模式---代理委托。








@interface Baye : NSObject


//id<Biaobai>delegate
//这个id类型的对象,表示这个对象实现了表白协议中声明的方法
//delegate这个对象遵守了这个Biaobao协议


//ps:拜托delegate替你做某事的时候要先确认delegate会做这件事
@property(retain,nonatomic)id<Biaobai> delegate;


-(void)baituobiaobai;


@end










#import <Foundation/Foundation.h>
#import "Biaobai.h"
//当一个类实现了某个[协议]的时候,用<>写在类声明的后面


//被拜托的人(也就是作为delegate的那个人)得真的会做这件事
@interface Siye : NSObject<Biaobai>


@end




//pss:基本上,在OC当中,就目前我们所学的知识里,能用到id类型的也就是代理和委托,别的地方别乱用。
看到id和delegate就得想到代理,委托




id类型表示泛型,它其中什么属性和方法都没有,所以用id类型的任何方法都会有警报说找不到这个方法。




类别:对类进行外部扩展,能够提供如下便捷操                 
           作:在任何想要使用扩展的方法的地方,  
           只要导入类别头文件,即可使用,因为类别中扩展的方法,都在类别
           内部实现了。
匿名类别:对类进行内部扩展,(本质上是为了弥补OC中没有私有  
                    这一概念而产生的)
                    匿名类别中声明的属性,方法,都是私有的,不要在外部使  
                    用,匿名类别的头文件导入在.m当中。
                    ps:成员变量,属性,方法(直接调用成员变量,self。调用
                          属性 _ 调用成员变量)
协议:声明某个类拥有某个方法。ps:协议的出现弥补了id类型[不能
            找到某个方法的警报问题]pss:协议中不要声明属性(特除)
委托:人话:拜托[拥有某个方法的[对象]做[某个方法]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值