黑马程序员---iOS基础---协议

来源:互联网 发布:阿里云ace下线原因 编辑:程序博客网 时间:2024/05/22 17:42

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


1.Protocol概念

在OC里面,Interface是一个类的头文件的声明,并不是真正意义上的接口的意思,在OC中,接口是由一个叫做协议的protocol来实现的。

这个里面可以声明一些方法,和java不同的是,它可以声明一些必须实现的方法和选择实现的方法。这个和java是完全不同的。


定义协议----> 在类中采用指定的协议---->实现协议中的方法(注意方法有必须实现和选择实现两种)

协议的定义

@protocol协议名称<NSObject> //默认遵守NSObject协议

//方法声明列表

@end;

注意:协议默认的要采纳NSObject的协议


类遵守协议

创建类的时候遵守某个或者某几个协议

@interface 类名 : 父类 <协议名称>

@end

@interface 类名 : 父类 <协议名称1,协议名称2>

@end

某个协议也遵守某个或者某些协议,一个协议可以遵守其他多个协议

(1)协议遵守协议

@protocol协议名称<其他协议名称>

@end

(2)多个协议之间用逗号 , 隔开。

@protocol 协议名称 <其他协议名称1, 其他协议名称2>

@end

也可以用图形界面创建协议。


OC中的协议(protocol)使用注意:

1)Protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现。

2)只要某个类遵守了这个协议,就拥有了这个协议中的所有方法声明。

3)只要父类遵守了某个协议,那么子类也遵守。

4)Protocol声明的方法可以让任何类去实现,protocol就是协议。

5)OC不能继承多个类(单继承)但是能够遵守多个协议。继承(:),遵守协议(<>)

6)基协议:<NSObject>是基协议,是最根本最基本的协议,其中声明了很多最基本的方法。

7)协议可以遵守协议,一个协议遵守了另一个协议,就可以拥有另一份协议中的方法声明


NSObject是一个基类,最根本最基本的类,任何其他类最终都要继承它,它还有名字也叫NSObject的协议,它是一个基协议,最根本最基本的协议。

建议每个新的协议都要遵守NSObject协议。


protocol代理设计模式引入

代理模式是在oc中经常遇到的一种设计模式,那什么叫做代理模式呢? 

在家里请保姆看孩子,家人和保姆之间商定了一个协议,

协议中写明了保姆需要做什么事情, 而保姆就是这个代理人,

 即:家人和保姆之间有个协议,保姆遵守该协议,于是保姆就需要实现该协议中的条款成为代理人。

代理模式概念

传入的对象,代替当前类完成了某个功能,称为代理模式。

利用协议实现代理模式的主要思路为:

1)定义一个协议,里面声明代理类需要实现的方法列表, 比如这里一个代理类需要实现feedBaby与HongSleep方法

2)创建一个代理类(比如BaoMu),遵守上面的代理协议

3)在需要代理的类中(Baby),定义一个对象类型为id且遵守代理协议的成员变量

 4)在Baby类中调用成员变量_delegate(代理)的方法,调用代理类的方法

5)main.m或其他使用Baby类的文件中,为Baby类的成员变量(代理类)赋值,










0 0
原创粉丝点击