有关协议的用法

来源:互联网 发布:淘宝运营专才 试题 编辑:程序博客网 时间:2024/04/25 12:42

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

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

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                                        

0 0
原创粉丝点击