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、效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dapr 源码解析 系列文章汇总

Dapr背后的架构模式是符合未来架构趋势&#xff08;多运行时架构&#xff09;和云原生发展趋势的。知乎 iyacontrol 对 Dapr的意义有一个很好的概括&#xff1a;对于小公司&#xff0c;甚至没有基础架构和中间件团队的公司&#xff0c;Dapr 提供了开箱即用的基础设施功能&#…

cstring判断包含字符串_Python字符串方法之-解决判断问题

19、endswith()描述&#xff1a;判断字符串是否以指定字符或子字符串结尾。语法&#xff1a;str.endswith("suffix", start, end) 或str[start,end].endswith("suffix") 用于判断字符串中某段字符串是否以指定字符或子字符串结尾。—> bool 返回值为布尔…

跨域访问-JSONP

JSONP即JSON with Padding。由于同源策略的限制&#xff0c;XmlHttpRequest只允许请求当前源&#xff08;域名、协议、端口&#xff09;的资源。如果要进行跨域请求&#xff0c;我们可以通过使用 html的script标记来进行跨域请求&#xff0c;并在响应中返回要执行的script代码&…

Angular变化检测机制

2019独角兽企业重金招聘Python工程师标准>>> 在使用Angular进行开发中&#xff0c;我们常用到Angular中的绑定——模型到视图的输入绑定、视图到模型的输出绑定以及视图与模型的双向绑定。而这些绑定的值之所以能在视图与模型之间保持同步&#xff0c;正是得益于Ang…

nx二次开发c语言,NX二次开发-UFUN API函数编程基础

1.NXOpen C 的函数函数名称的约定NX Open C 共有2类名称约定&#xff1a;一个是标准的NX Open C 的函数名称约定&#xff1b;另一个是以前版本的原有的名称约定。1.标准名称约定【格式】UF__【说明】(1)UF:User Funciton的简写&#xff0c;表示该函数为NX Open C 函数。(2)&…

Android Studio之导入安卓项目gradle编译出现问题分析日志思路

1、问题 安卓项目导入Android Studio项目之后&#xff0c;编译gradle出现问题 2、如何分析 1)、先确保电脑能上网&#xff0c;本机能上网&#xff0c;就不要设置代理 File -> Settings->Http Proxy->No proxy 然后去掉不需要的镜像 2&#xff09;、详细打印gradl…

JMeter压力测试入门教程[图文]

Apache JMeter是Apache组 织开发的基于Java的压力测试工具。用于对软件做压力测试&#xff0c;它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java小服务程序、CGI脚本、Java 对象、数据库&#xff0c; FTP服务器, 等等。…

.NET6之MiniAPI(二十九):UnitTest

MiniAPI的单元测试与asp.net web api的单元测试大体是相同的&#xff08;毕竟都是asp.net core&#xff09;&#xff0c;只是在小细节上有一些差异&#xff0c;文章中会说到这点。本文测试框架是XUnit&#xff0c;Mock框架是Moq&#xff0c;关于这两个框架和库的学习&#xff0…

vue data数据修改_Vue 超清晰思维导图(7张),详细知识点梳理!

Vue思维导图目录MVC与MVVM的区别Vue基本代码结构Vue指令Vue组件class和style动态绑定computed计算属性EventBusfilter过滤器方法Vue是一套构建用户界面的框架&#xff0c;只关注视图层&#xff0c;它不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。&#xff08;Vue有…

转帖不会乱码的,powershell网络蜘蛛

抓取&#xff08;爬取&#xff09;网上信息的脚本程序&#xff0c;俗称网络蜘蛛。powershell中自带了这样的两个命令&#xff0c;【Invoke-WebRequest】和【Invoke-RestMethod】&#xff0c;但这两个命令有时候会乱码。 现在转帖分享&#xff0c; 某个【歪果仁】写的脚本。来源…

Linux上搭建nginx,及简单配置

在上家公司都是运维安装nginx&#xff0c;到新公司后代码开发完成部署测试服务器要求自己装nginx&#xff0c;研究了好久安装好之后&#xff0c;到正式上线还要自己安装&#xff0c;索性把安装步骤自己记载下来&#xff08;好大一部分都是在网站找的&#xff09;。一&#xff0…

c语言打开文件并输出,文件的读取,c语言打开文件并输出

文件的读取&#xff0c;c语言打开文件并输出在做数据分析的过程中&#xff0c;经常会遇到文件的读取。我想很多人都在这个环节遇到过问题&#xff0c;所以就把自己掌握的一些文件读取方法记录下来&#xff0c;以及过程中遇到的一些状况和解决方法列出来&#xff0c;以便交流。o…

IOS学习笔记十六(NSString和NSMutableString)

1、NSString和NSMutableString NSString是不变字符串类&#xff0c;有点像java里面的String,NSMutableString是可变字符串类&#xff0c;有点类似java里面的StringBuffer 2、测试demo int main(int argc, char * argv[]) {autoreleasepool {unichar data[6] {97, 98, 100, 1…

产品经理书籍

《结网》 part1 做产品的几个要点&#xff1a;出处、目标、 壁垒、 受益人群、 商业模式、 平台现金牛、战略部署。 一个概念是否可以被有效执行出来比概念的本事更重要 要有坚定的决心更要有合理的发展路线 part2 传说中的风投&#xff1a;&#xff08;投资你的个人品质和你对…

界面连接数据库

1、获取本机的SQL Server服务器名 private void Form2_Load(object sender, EventArgs e){listBox1.Items.Clear();SQLDMO.Application SQLServer = new SQLDMO.Application();SQLDMO.NameList strServer = SQLServer.ListAvailableSQLServers();if (strServer.Count > 0){f…

Xamarin效果第二十篇之GIS中加载三维白模

在前面文章中简单玩了玩GIS的基本操作、Mark相关、AR和测距,今天再次分享一下N年前就像玩耍的效果;啥也不说了都在效果里:再来看看手机端的效果:1、关于效果我也是偶然见看到了别人实现:https://blog.csdn.net/arcgis_all/article/details/769991042、关于实现就是在三维场景图…

visa虚拟卡生成器_虚拟卡有哪些功能?赶紧了解一下

现在很多人都会有机会出国&#xff0c;或者是直接在国外生活&#xff0c;他们时不时的会到国内办理一些事情&#xff0c;而这个时候为了确保信用卡在使用的时候安全&#xff0c;有些人就会申请使用虚拟信用卡&#xff0c;这样不但可以解决跨国支付的麻烦&#xff0c;从而确保在…

35个Java代码性能优化总结

代码优化的目标是&#xff1a; 1、减小代码的体积 2、提高代码运行的效率 代码优化细节&#xff1a; 1、尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。为类指定final修饰符可以让类不可以被继承&#xff0c;为方法指定final修饰符可以让方法不可以被重写。…

android编程绘图,Android编程绘图操作之弧形绘制方法示例

本文实例讲述了Android编程绘图操作之弧形绘制方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;/*** 绘制弧形图案* description&#xff1a;* author ldm* date 2016-4-25 下午4:37:01*/public class ArcsActivity extends Activity {Overrideprotected void onCr…

JS多个对象添加到一个对象中

var obj1 {"qq":10}; var obj2{"mm":2,"nn":3}; var obj3{"xx":1,"yy":5}; obj1.field1 obj2; obj1.field2 obj3; console.log(obj1)转载于:https://www.cnblogs.com/thiaoqueen/p/7111697.html