objective-C 协议的一点点领会
2014-11-28 15:41
295 查看
首先
指定协议
@protocol XNQDelegate <NSObject>
@required
/**
* @brief 说话
* @note 呵呵
* @param 无
* @return 无返回
*/
-(void)say:(NSString *)words;
@optional
/**
* @brief 吃饭
* @note 呵呵
* @param 无
* @return 无返回
*/
-(void)eat:(NSString *)something;
@end
协议的执行方需要:
1.导入头文件
#import "ZCProtocol.h"//1
2.遵守协议
<XNQDelegate>//2
3.设置协议的代理方
ZCOtherViewController *zvc = [[ZCOtherViewController
alloc] init];
zvc.myDelegate =
self;
[self
presentViewController:zvc
animated:YES
completion:nil];
4.实现协议的方法,@optional为必须实现,@optional为可以实现可以不实现
-(void)say:(NSString *)words//3
{
NSLog(@"say %@",words);
}
-(void)eat:(NSString *)something
{
NSLog(@"eat %@",something);
}
协议的委托方需要执行
1.导入头文件
#import "ZCProtocol.h"//1
2.定义协议变量
@property (assign)
id<XNQDelegate> myDelegate;//2
3.在需要的地方执行方法
if ([self.xnqdelegate
respondsToSelector:@selector(say:)]) {
[self.xnqdelegate
performSelector:@selector(say:)withObject:@"123"];
}
指定协议
@protocol XNQDelegate <NSObject>
@required
/**
* @brief 说话
* @note 呵呵
* @param 无
* @return 无返回
*/
-(void)say:(NSString *)words;
@optional
/**
* @brief 吃饭
* @note 呵呵
* @param 无
* @return 无返回
*/
-(void)eat:(NSString *)something;
@end
协议的执行方需要:
1.导入头文件
#import "ZCProtocol.h"//1
2.遵守协议
<XNQDelegate>//2
3.设置协议的代理方
ZCOtherViewController *zvc = [[ZCOtherViewController
alloc] init];
zvc.myDelegate =
self;
[self
presentViewController:zvc
animated:YES
completion:nil];
4.实现协议的方法,@optional为必须实现,@optional为可以实现可以不实现
-(void)say:(NSString *)words//3
{
NSLog(@"say %@",words);
}
-(void)eat:(NSString *)something
{
NSLog(@"eat %@",something);
}
协议的委托方需要执行
1.导入头文件
#import "ZCProtocol.h"//1
2.定义协议变量
@property (assign)
id<XNQDelegate> myDelegate;//2
3.在需要的地方执行方法
if ([self.xnqdelegate
respondsToSelector:@selector(say:)]) {
[self.xnqdelegate
performSelector:@selector(say:)withObject:@"123"];
}
相关文章推荐
- Objective-C 语法五(协议)
- Objective-C--- 多态 、 协议
- Objective-C 协议(protocol)
- objective-c中对类方法的扩展:类别,以及非正式协议(十)
- Objective-C中协议和委托
- objective-C 类别/协议。
- Objective-C Runtime 运行时之五:协议与分类
- Objective-C 13 协议protocol
- Objective-C: 协议、分类、扩展
- Objective-C中的类别和非正式协议
- Objective-C Runtime 运行时之五:协议与分类
- 详解Objective-C中委托和协议
- Objective-C NSData与实现NSCoding协议进行序列化和反序列化
- Objective-C中的协议(protocol)与委托
- 使用_ObjectiveCBridgeable协议实现Objective-C类与Swift结构体的无缝互转
- objective-c 协议与委托
- Objective-c中的协议
- Objective-C语言——Protocol协议
- objective-c基础语法学习之--(5):类目,延展,协议,代理
- 【objective-c】类目 延展 协议