【应用程序代理方法介绍-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

相关文章

Python中的魔术方法__new__详解

《Python中的魔术方法__new__详解》:本文主要介绍Python中的魔术方法__new__的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、核心意义与机制1.1 构造过程原理1.2 与 __init__ 对比二、核心功能解析2.1 核心能力2.2

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

关于pandas的read_csv方法使用解读

《关于pandas的read_csv方法使用解读》:本文主要介绍关于pandas的read_csv方法使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录pandas的read_csv方法解读read_csv中的参数基本参数通用解析参数空值处理相关参数时间处理相关

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

Redis实现延迟任务的三种方法详解

《Redis实现延迟任务的三种方法详解》延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务,本文为大家整理了三种常见的实现方法,感兴趣的小伙伴可以参考一下... 目录1.前言2.Redis如何实现延迟任务3.代码实现3.1. 过期键通知事件实现3.2. 使用ZSet实现延迟任务3.3

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印