首页 / IOS / IOS - 回调函数的使用
IOS - 回调函数的使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了IOS - 回调函数的使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1982字,纯文字阅读大概需要3分钟。
内容图文
在 IOS 的数据回调或者说代理模式大都都是通过回调函数或者Block(代码块)来实现的,Block 没什么好讲的,语法而已,这里简单理解下回调函数的工作原理。
(这个回调函数的工作原理实际上的也是代理模式的过程)
一、代理类的实现
首先,新建一个代理类,并在其中写一个协议:AgencyProtocol
@protocol AgencyProtocol <NSObject> - (void)cometrueSuccess:(NSString *)str; - (void)cometrueFail:(NSString *)str; @end
然后在代理类中操作:
- 引入 AgencyProtocol 协议,并且定义一个AgencyProtocol协议的代理(delegate);
- 对该代理类使用单例模式(一般代理类使用单例模式比较好,可以防止内存泄露);
- 实现一个代理方法;
.h 文件代码:
@protocol AgencyProtocol; @interface AgencyClass : NSObject @property (nonatomic, weak) id<AgencyProtocol> delegate; // 单例模式 + (id)shareInstance; /** * 模拟代理方法 * * @param str 表示传进来的参数 * @param isBool 模拟判断是否执行成功:即调用协议中的哪个方法 */ - (void)agencyFunction:(NSString *)str andBool:(BOOL)isBool; @end
.m 文件代码:(这里的代理实现是 回调函数 最重要的地方)
@implementation AgencyClass #pragma mark - 单例模式 static AgencyClass *instnce; + (id)shareInstance { if (instnce == nil) { instnce = [[[self class] alloc] init]; } return instnce; } #pragma mark - 代理实现 - (void)agencyFunction:(NSString *)str andBool:(BOOL)isBool { if (isBool) { // 调用 respondsToSelector 方法判断 cometrueSuccess 是否被实现,如果没有实现就去实现它if ([self.delegate respondsToSelector:@selector(cometrueSuccess:)]) { [self.delegate cometrueSuccess:str]; } } else { // 调用 respondsToSelector 方法判断 cometrueFail 是否被实现,如果没有实现就去实现它if ([self.delegate respondsToSelector:@selector(cometrueFail:)]) { [self.delegate cometrueFail:str]; } } } @end
二、使用类的实现
首先,我们在 .h 文件中引入该代理类,并且引入协议
#import " AgencyClass.h " @interface ViewController : UIViewController<AgencyProtocol> @end
然后我们可以在.m 文件中操作
- 创建一个代理类的对象;
- 将使用类赋给代理类的 delegate;
- 使用代理方法
// 使用代理类 // 创建一个代理类的对象 AgencyClass *agency = [AgencyClass shareInstance]; // 将使用类赋给代理类的 delegate; agency.delegate = self; // 使用代理方法 [agency agencyFunction:@"真的在实现?" andBool:YES];
最后我们可以实现协议的两个方法
#pragma mark - AgencyProtocol 实现 - (void)cometrueSuccess:(NSString *)str { NSLog(@"%@ 是的,操作成功了!",str); } - (void)cometrueFail:(NSString *)str { NSLog(@"%@ 抱歉,操作失败了",str); }
原文:http://www.cnblogs.com/ziyeSky/p/4132817.html
内容总结
以上是互联网集市为您收集整理的IOS - 回调函数的使用全部内容,希望文章能够帮你解决IOS - 回调函数的使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。