码迷,mamicode.com
首页 > 其他好文 > 详细

协议(Protocol)

时间:2016-01-18 13:50:32      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

协议(Protocol)的基本概念

协议的声明看起来比较类似于Java中一个类的接口,但是和接口不同的是:协议没有父类也不能定义实例变量。

协议是一种特殊的程序设计结构,用于声明专门被别的类实现的方法。协议在以下场合非常有用:

 

  • 需要由别的类实现的方法
  • 声明未知类的接口
  • 两个类之间的通信

    协议的基本特点

    • 协议可以被任何类实现的方法
    • 协议本身不是类,它是定义了一个其他类可以实现的接口
    • 类别也可以采用协议(用的不多)

      协议中的关键字

      @required:表示必须强制实现的方法

      @optional:表示可以有选择性的实现方法

      范例:

      协议声明:

 

//协议的声明
#import <foundation foundation.h="">
@protocol OneProtocol <nsobject>
 
//可以选择实现的方法:
@optional
-(void) optionalMethod1;
-(void) optionalMethod2;
//必须实现的方法:
@required
-(void) requiredMethod1;
@end
//采用协议(Test.h)
#import "OneProtocol.h"
@interface Test : NSObject<oneprotocol></oneprotocol></nsobject></foundation>

 

协议实现方法:

#import "Test.h"
 
@implementation Test
 
-(void)optionalMethod1{
    //可选择实现方法1
}
-(void)optionalMethod2{
    //可选择实现方法2
}
-(void)requiredMethod1{
    //必须是实现方法2
}
@end

 

main.m方法:

Test *test=[[Test alloc]init];
       [test optionalMethod1];
       [test optionalMethod2];
       [test requiredMethod1];
       [test autorelease];

 

 

转载自:  http://www.2cto.com/kf/201402/277229.html

协议(Protocol)

标签:

原文地址:http://www.cnblogs.com/hz-1521049517/p/5138915.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!