IOS之学习笔记十五(协议和委托的使用)
1、协议和委托的使用
1)、协议可以看下我的这篇博客
IOS之学习笔记十四(协议的定义和实现) https://blog.csdn.net/u011068702/article/details/80963731
2)、委托可以叫代理,实现协议的类的对象可以叫委托对象或者代理对象
3)、关键就是我们在控制器里类(获取数据类)里面的成员变量需要是一个委托对象或者代理对象
4)、然后调用控制器里类(获取数据类)里面的方法的时候会调用委托对象里面定义的方法
2、测试app启动弹框提示
1)、control.h
#ifndef Control_h
#define Control_h
#import <Foundation/Foundation.h>//协议定义
@protocol UpdateAlertDelegate
-(void)updateAlert;
@end@interface Control : NSObject
//遵循协议的一个代理变量定义
@property (nonatomic, weak) id<UpdateAlertDelegate> delegate;
- (void) willShowAlert;
@end
#endif /* Control_h */
2)、control.m
#import <Foundation/Foundation.h>
#import "Control.h"
@implementation Control- (void) willShowAlert
{[self.delegate updateAlert];
}@end
3) 、我们在ViewController.h文件里面实现在control.h文件里面定义的协议
#import <UIKit/UIKit.h>
#import "Control.h"@interface ViewController : UIViewController<UpdateAlertDelegate>@end
4)、在ViewController.m文件里面实现协议的定义的方法,而且实例化对象设置自己为委托对象
#import "ViewController.h"
#import "Control.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];Control *control = [Control new];control.delegate = self;[control willShowAlert];
}- (IBAction)ui:(id)sender {NSLog(@"hello word");
}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}- (void)updateAlert
{UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"提示" message:@"协议和代理" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定",nil];alert.alertViewStyle=UIAlertViewStyleDefault;[alert show];
}
@end
3、效果
IOS之学习笔记十五(协议和委托的使用)相关推荐
- IOS之学习笔记十四(协议的定义和实现)
1.正式协议的定义 @protocol 协议名 <父协议1, 父协议2>{零个到多个方法定义} 一个协议可以有多个直接父协议,但协议只能继承协议,不能继承类 协议只有方法签名,没有方法实现 ...
- python复制指定字符串_python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)...
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
- windows内核开发学习笔记十五:IRP结构
windows内核开发学习笔记十五:IRP结构 IRP(I/O Request Package)在windows内核中,有一种系统组件--IRP,即输入输出请求包.当上层应用程序需要访问底层输入输 ...
- Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件
Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件 用Polyworks脚本开发,没有高级语言的支持,功能难免单一,一些比较复杂的交互实现不了,界面和报告也很 ...
- Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告
请看之前的:Mr.J-- jQuery学习笔记(十四)--动画显示隐藏 话不多说,直接上demo <!DOCTYPE html> <html lang="en"& ...
- 世界是有生命的(通向财富自由之路学习笔记十五)
最近因为工作调度的事情,有了一段空闲的日子,有比较多的时间来回望自己走过的路以及如何走好以后的路.之前忙得很少时间来写博文,很少时间来写读书笔记,逐渐将自己一些很好的习惯丢弃了.从今天起将重拾写博文的 ...
- 前端学习笔记(十五)
第十五章 HTML5新增标签 一.HTML5概述 1.简介 HTML5万维网的核心语言.标准通用标记语言下的一个应用超文本标记语言的第五次大修改.HTML5将成为 HTML.XHTML ...
- 【theano-windows】学习笔记十五——受限玻尔兹曼机
前言 终于到了最喜欢的模型: 受限玻尔兹曼机(RBM)了, 发现关于RBM是如何从能量模型发展过来的介绍非常不错, 而关于详细理论证明, 可以去看我前面的受限玻尔兹曼机的一系列博客. 国际惯例, 参考 ...
- hough变换直线检测_CV学习笔记(十五):直线检测
在这一篇文章中我们将学习使用OpenCV中的 HoughLines 函数和 HoughLinesP 函数来检测图像中的直线. 在这个函数中,使用的是霍夫变换(Hough Transform) 这是计算 ...
最新文章
- linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...
- gradle build connection reset or protocol_version build failure
- 一步步学习 Spring Data 系列之JPA(一)
- 【12c新特性】12c中如何自动启动PDB Pluggable Database
- SendMessage 和 PostMessage
- 中兴智能视觉大数据报道:人脸识别准确率高达99.8%
- Day05 - Python 常用模块
- 找找 Spring Event 源码中各种设计模式的使用
- 使用jupyter notebook连接服务器进行远程写代码
- ubuntu MySQL Oracle_Oracle 与 MySql 区别
- python中的深浅拷贝
- 华为云云容器快速搭建网站实践随记—利用公有镜像搭建WordPress
- python读取大文件内存不够_大型CSV文件(numpy)上的Python内存不足
- 基于redis的乐观锁实践
- JQuery和JavaScript常用方法的一些区别
- 如何在Ubuntu中更改用户密码
- Windows Mobile 获取来电号码和屏蔽来电
- Windows phone8 基础篇(二) xaml介绍 一
- QoS专题-第4期-QoS实现之限速
- Uva 12563 - Jin Ge Jin Qu(01背包)