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

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验