【应用程序代理方法介绍-AppDelegate Objective-C语言】

2023-10-21 01:44

本文主要是介绍【应用程序代理方法介绍-AppDelegate Objective-C语言】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、接着来上课啊

通知

1.课下听同学们反应,对第4步,可能有点儿疑问,

额,不是,第5步,

5)根据第四个参数:创建应用程序代理对象,并且将这个代理对象设置为应用程序的代理,

现在,我们只是这么去解释,但是呢,我们是不是,结构上,有点儿不清晰,

那,首先这个,应用程序代理对象,那,大家晕的是哪一块儿呢,

我觉得应该是这个AppDelegate,为什么命名成这种文件:

通知

这个有问题吗:

通知

有问题吧,这种结构,我们是不是没见过,

没见过啊,那我给大家写一个什么呢,我们来看看,平常,我们是怎么去用代理的:

通知

2.在通常情况下,然后呢,我们在哪儿块用到过代理,

大家给我说一个场景,然后呢,咱们来一块儿分析一下,

狗、和猫、是吧,

猫、和狗、啊……

那我直接写了啊,

我先来一个类,

一个学生,一个老师,

我现在呢,老师是不是会让学生去,干嘛,

写作业,对吧,

那我们呢,就用代理的方式,老师让学生去写作业,

来实现一下这个过程啊,我们直接写了啊,

1)首先,一个老师类,teacher,一个teacher.h、一个teacher.m

对吧,没有疑问吧,

Teacher.h

Teacher.m

通知

Teacher.h、Teacher.m:这是不是一个教师类,

额,现在字体太小了,我加大点儿:

通知

这样可以吗,

Teacher.h:教师类

Teacher.m

然后呢,还有一个学生类,

Student.h:学生类

Student.m

这是我们经典案例,是吧,

通知

那,现在,我让你通过代理的方式,完成一个:“教师让学生去写作业”

老师想让学生写作业,老师是不是要规定一些什么东西啊,

1)老师,是不是要声明一个协议:

在老师的“点儿”h、还是“点儿”m文件里面,声明协议,

通知

是不是“点儿”h文件上面,声明协议:

通知

2)然后呢,协议里面是不是跟的是一些协议方法,比如说,写作业的方法:

通知

然后呢,你现在把这个协议,写好以后,还需要什么东西,

3)是不是还需要一个代理属性,delegate属性:

在这个“点儿”h的类声明里面,是不是写一个代理属性:

assign、weak、是不是都可以

然后呢,这个代理属性,遵守什么协议,id< >

通知

那我把这个协议,写一下:

我们平常写的时候,是不是TeacherDelegate

通知

然后呢,遵守这个协议,command + C、command + V:

通知

command + V:

通知

然后呢,这个尖括号,上去:

通知

是不是来一个代理属性:

通知

然后呢,教师的工作,做完了吗,没有吧,

4)还差什么,它是不是还需要“通知代理”,让代理去执行操作,

然后呢,怎么去执行操作呢:

为了安全起见,我们是不是先判断一下,

if(self.delegate responseToSelector)

通知

然后呢,把这个方法传进来,是不是就是对应的协议方法:

写作业:

然后呢,加个中括号:

通知

if([self.delegate responseToSelector:]){ }

如果它响应了这个方法,是不是才去“通知代理”,让代理执行操作:

self.delegate 写作业;

通知

加个中括号:

通知

然后呢,教师的工作,现在是不是算完了

通知

到某一步骤,你让学生写作业

那现在呢,

5)在学生里面,怎么干:

我们平常写的时候,是不是在Student“点儿”m文件的类扩展里面,

对,Student“点儿”m文件,有一个类扩展,

通知

然后呢,有一个类实现,

通知

类扩展里面,是干嘛的,是不是要遵守那个协议,

遵守这个教师的协议:TeacherDelegate协议:

通知

command + C、command + V:

通知
通知

6)然后呢,遵守协议以后,是不是实现对应的方法

那,是不是在类实现里面,实现这个“写作业”方法:

通知

然后你NSLog(@“努力的写作业……”);一下

通知

现在这个结构,能明确吗:

通知

7)是不是还有一个设置代理,在哪儿块设置代理:

是不是也是在学生里边,应该有一个地方,是设置代理的,对吧,

设置代理:

根据你的情况,可能在某一个地方,需要设置代理:

通知

老师是不是说过,在一个合适的地方,设置这个代理,

你自己找这个合适的地方,啊,

然后,那现在,这个结构,是不是很清晰:

通知

但是,对于我们项目启动,这个文件,AppDelegate:

通知

这个家伙:

通知

你能把它对比过去吗,

1)哪一个,是我们的代理类啊:

通知

如果现在看:老师跟学生,现在学生,是不是对应的代理类,对吧:

通知

因为它,遵守了这个协议嘛:

通知

对吧,而且,这个协议,你在类扩展里面写,你在“点儿”h文件里面,是不是也可以写啊,对不对,

那,这个AppDelegate里边,它是不是写到“点儿”h文件里边来了:

通知

没有问题吧,所以呢,我把它,也放到“点儿”h文件里边:

通知

放到“点儿”h文件中:

通知

可以吧,

那,现在呢,那,Student.m文件中,这一堆的方法:

通知

我们已经给大家解释过了,这一堆呢,都是一些代理方法࿰

这篇关于【应用程序代理方法介绍-AppDelegate Objective-C语言】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/251094

相关文章

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分