oc中的protocol(协议)与delegate(代理)

protocol(协议)

与创建类一样,右击鼠标,选New File,选Objective-C,选protocol(切记!!!),然后写协议名,就可以了。


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

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

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

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

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

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

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


在这里我们创建了一个协议rensheng

#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(代理)

定义: 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在代理方和目标对象之间起到中介的作用。

使用代理模式可以降低耦合度。大大的增强了代码的弹性。


留着查资料!!!


转载于:https://my.oschina.net/LBBB/blog/653087

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值