在自定义协议的头文件 .h中

@protocol NSDelegate <NSObject>
@optional  //可选

- (void)OnOption:(NSString *)pStr;

@required //必须
- (void)OnRequired:(NSString *)pStr;
@end

@interface NSClass :NSObject

id<BSDelegate> delegate;

@end

@property(assian) id<BSDelegate> delegate;

在自定义协议的实现文件.m中

@synthesize delegate;

在制定协议实现文件中调用协议

如果委托方法是可实现的,可以在调用委托方法的用respondsToSelector来判断是否已经实现了委托方法。

例如:

[delegate respondsToSelector@selector(OnOption:)]

然后调用。

如果是必须实现的则直接调用:

[delegate OnRequired:@"test"]

其它类中声明和使用协议

@interface UIMyView : UIViewController<BSDelegate>

NSClass *m_pClass;

@end

UIMyView 的.m文件中制定委托并实现相关委托方法

m_pClass.delegate = self;

再实现委托方法:

- (void)OnOption:(NSString *)pStr

{
}

- (void)OnRequire:(NSString *)pStr

{
}

最新文章

  1. electron 入门小白贴
  2. sql server 替换特殊符号
  3. POJ2763 Housewife Wind(DFS序)
  4. 小课堂week13 Clean Code Part2
  5. Windows命令行下pip安装python whl包
  6. PASCAL的优越性:官方的说法(不需要Makefile,节约大量的时间)
  7. js数组操作-找出一组按不同顺序排列的字符串的数组元素
  8. .NET和JAVA 反射对比
  9. 在Visual Studio 2017中发现的问题
  10. zlib 压缩输出缓冲区 overflow 问题
  11. Spring Boot自动配置与Spring 条件化配置
  12. DataGridView 绑定数据问题及修改值交换列
  13. c++命名空间---namespace
  14. linux 搭建ftp服务
  15. ROC与AUC原理
  16. maven项目报错--Cannot change version of project facet Dynamic Web Module to 3.0 Error in Eclipse
  17. codeforces 560 C Gerald&amp;#39;s Hexagon
  18. BZOJ1996 HNOI2010合唱队(区间dp)
  19. 从客户端中检测到有潜在危险的 Request.Form 值的问题的解决方法。
  20. HTML-利用CSS和JavaScript制作一个切换图片的网页

热门文章

  1. 任务25:IHostEnvironment和 IApplicationLifetime介绍
  2. CodeForces 712C Memory and De-Evolution (贪心+暴力)
  3. 51nod 1133【贪心】
  4. 基于FBX SDK的FBX模型解析与加载 -(二)
  5. LuoguP2822 组合数问题(组合数,二维前缀和)
  6. IT兄弟连 JavaWeb教程 ServletContext对象
  7. 分层图初探 By cellur925
  8. 二分查找 BestCoder Round #36 ($) Gunner
  9. 【前端】模拟微信上传图片(带预览,支持预览gif)
  10. Java基础学习-一切皆为对象