有关协议的用法

3 篇文章 0 订阅

首先要明白协议的作用,协议的作用就是对一些方法的声明,如果一个类遵守了此协议

就有了此协议中的所有方法,当然用有了这写方法后要对这些方法进行实现

oc中有关协议的用法如下:

1.协议的定义

@protocal  协议名称 <NSObject>

//方法的声明

- (void)test;

- (int) test2;

@end


例子:@protocol myprotocol <NSObject>

@end

2.一个类怎么遵守协议

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

@end

例子: @interface p :Person <Myprotocol>

@end

3.协议遵守协议

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

@end

例子: @protocol Myprotocol <Protocol1,Protocol2>

@end


4.协议中的方法声明的关键字

(1)@require(默认)

要求实现,如果没有实现将会发出警告

(2)@optional

不要求实现,不实现也不会警告

5.定义一个变量的时候,限制这个变量保存的对象遵守某个协议

类名<协议名称> *变量名;

id<协议名称>变量名称;

例子:NSObject<Myprotocol>*obj;

id<Myprotocol> obj2;

如果没有对应的协议,编辑器会发出警告

6.@property中声明的属性也可用做一个遵守协议的限制

@property (nonatomic,strong) 类名<协议名称> *属性名;

@property (nonatomic,strong) id<协议名称> 属性名;

列子:@property (nonatomic,strong) Dog<Myprotocol>*dog;

@property (nonatomic,strong) id<Myprotocol>dog1;

另外补充一点分类的写法

在.h文件中      

@interface Dog1 (Dog)                               

- (void)test;                                                        

@end           

在.m文件中 

@implementation Dog1 (Dog) 

- (void)test

{

.....

}

@end                                        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值