Objective-C 基础知识之(十三):类目、延展、协议、代理等的基本概念

来源:互联网 发布:网络推广要什么证书 编辑:程序博客网 时间:2024/06/05 13:21

Category

类目、分类

可以为任何类添加方法。

类目的接口部分:声明添加的方法。

不能添加实例变量。

 

类目包含两部分:接口部分、实现部分。

类目中添加的方法属于类的一部分。

子类可以继承父类所有的方法,包含类目中的方法。

类目中方法的优先级高于类中定义的方法(类目中的方法与类中的方法重名)。


Extension 

延展

类的延展写在类的实现文件中(.m)。

延展是给有源代码(有.m文件)的类使用的。

延展只有接口部分,没有实现部分。

延展是用于管理实例变量和"私有"方法的。

在延展中声明的方法,在类的实现部分进行实现。

 

在延展中声明的实例变量和方法,在类的内部需要使用,但是不想对外公开。

仅类的内部使用,不提供给类的外部使用。

声明私有方法时,可以使用前缀,如:- (void)p_test;

 

延展在.m文件中的声明标志:

@interface Person ()

@end

 

 

Procotol

协议

协议和对象本身没有任何关系。

当对象需要得到某个协议中的方法时,遵守协议即可得到。

协议中只有方法的声明,由遵守协议的对象在其实现文件中实现。

一个协议可以被多个类遵守。

一个类可以遵守多个协议。

 

协议中的方法种类:

@required 默认的是必须实现的

即遵守本协议的对象,必须实现的方法。

 

@optional 可选实现

 

创建协议:

创建一个RentProtocol

@protocol RentProtocol <NSObject>

 

@end

 

遵守协议的对象:

可遵守多个协议,协议之间用逗号间隔。

@interface Student : NSObject<RentProtocol,Employment> //遵守协议

 

@end



Delegate  

代理

代理的实现步骤:

1、代理设计模式的两方:找代理的对象,做代理的对象。

2、找代理的对象根据需求定义协议。

3、在找代理的对象中,声明操作代理的实例变量 _delegate。

4、在找代理的对象中,实现设置代理对象的方法。

5、在找代理的对象中,根据需求使用代理对象调用协议中的某个方法。

        

6、做代理的对象,遵守相应的协议

7、做代理的对象,实现协议中的方法

        

8、创建找代理的对象、做代理的对象

9、调用方法完成设置代理对象

        

一个对象的代理对象可以是任意类型的。

一个对象的代理对象,不可能同时存在多个。可以换代理对象。        

协议方法和代理方法是同一个方法。


0 0
原创粉丝点击