f(sixleaves) = sixleaves

重剑无锋 大巧不工

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  95 随笔 :: 0 文章 :: 7 评论 :: 0 Trackbacks

 

 6.协议也能遵守(继承)协议main.m
 1 //
 2 //  main.m
 3 //  Protocol
 4 //
 5 //  Created by sixleaves on 15/5/13.
 6 //  Copyright (c) 2015年 itcast. All rights reserved.
 7 //
 8 
 9 #import <Foundation/Foundation.h>
10 #import "Person.h"
11 #import "Dog.h"
12 #import "WPProtocol.h"
13 int main(int argc, const char * argv[]) {
14     /*
15         Dog没有遵守WPProtocol协议,
16         Person遵守了WPProtocol协议,
17         WPProtocol又遵守GHProtocol协议
18      */
19     
20     Person *p = [[Person alloc] init];
21     
22     [p test1];
23     
24     
25     Person<GHProtocol> *p2 = [[Person alloc] init];
26     [p2 love];
27     
28     // Dog对象没遵守WPProtocol,所以会有警告。
29     Dog<WPProtocol> *d = [[Dog alloc] init];
30     
31     
32     return 0;
33 }
34 /*
35  1.protocol的作用(什么是协议、用途):
36     用来声明一大堆的方法。
37 
38  2.协议的语法:
39  
40  @protocol WPProtocol <NSObject>
41  
42  @end
43  遵守协议的语法:<协议名>
44  采用多协议语法:<协议1, 协议2, >
45  
46  3.基协议:
47  NSObject是一个基协议和基类同名,几乎所有的OC协议都要遵守NSObject协议。
48  基协议声明了很多常用的接口。所以自己写得protocol最好也要遵守基协议。
49  
50  4.限制对象类型
51    限制变量只能保存遵守某个、某些协议的对象
52    如果不遵守会有警告。
53  
54  5.协议前置声明(@protocol 协议名;)
55    与类的前置声明的原因一样,在.h文件中仅仅需要知道是个协议就行,所以可用前置声明
56    在.m文件中,需要知道其内部构造,再导入。

     6.协议也能遵守(继承)协议


57  */

WPProtocol.h
 1 //
 2 //  WPProtocol.h
 3 //  Protocol
 4 //
 5 //  Created by sixleaves on 15/5/13.
 6 //  Copyright (c) 2015年 itcast. All rights reserved.
 7 //
 8 
 9 #import <Foundation/Foundation.h>
10 #import "GHProtocol.h"
11 @protocol WPProtocol <NSObject, GHProtocol>
12 
13 - (void)test1;
14 @required
15 - (void)test2;
16 - (void)test3;
17 - (void)test4;
18 @optional
19 - (void)test5;
20 
21 @end
22 
posted on 2015-05-13 11:09 swp 阅读(173) 评论(0)  编辑 收藏 引用 所属分类: objective-c

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理