protocol(协议)ui
与建立类同样,右击鼠标,选New File,选Objective-C,选protocol(切记!!!),而后写协议名,就能够了。
spa
1.Protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现。代理
2.只要某个类遵照了这个协议,就拥有了这个协议中的全部方法声明。code
3.只要父类遵照了某个协议,那么子类也遵照。orm
4.Protocol声明的方法可让任何类去实现,protocol就是协议。对象
5.OC不能继承多个类(单继承)可是可以遵照多个协议。继承(:),遵照协议(< >)继承
6.基协议:<NSObject>是基协议,是最根本最基本的协议,其中声明了不少最基本的方法。it
7.协议能够遵照协议,一个协议遵照了另外一个协议,就能够拥有另外一份协议中的方法声明。io
在这里咱们建立了一个协议renshengclass
#import <Foundation/Foundation.h> @protocol rensheng <NSObject> //可选的 @optional -(void)TVing:(id)xiaoming; //必须实现的 @required -(void)eating:(id)xiaoming; @end
而后咱们在people类.h文件里面引用它
#import <Foundation/Foundation.h> //引用rensheng的.h头文件 #import "rensheng.h" //NSObject后面要加<>,里面是协议名 @interface people : NSObject<rensheng> @end
接着咱们在people类.m文件里面实现它
#import "people.h" @implementation people //@optional类型的是可选的,咱们并不必定要实现它 -(void)TVing:(id)xiaoming{ NSLog(@"小明不必定须要看电视"); } //@required类型是必须实现的,咱们必定要实现它 -(void)eating:(id)xiaoming{ NSLog(@"小明必定要吃饭"); } @end
delegate(代理)
定义: 为其余对象提供一种代理以控制对这个对象的访问。在某些状况下,一个对象不适合或者不能直接引用另外一个对象,而代理对象能够在代理方和目标对象之间起到中介的做用。
使用代理模式能够下降耦合度。大大的加强了代码的弹性。
留着查资料!!!