IOS-协议和代理

协议和代理
IOS中协议和代理是很常见的,但是肯定有很多人看他感觉挺麻烦的,所以就不想去碰他,不过,你要知道协议和代理会解决一些ios无法解决的问题(论其重要性)。

什么是协议和代理
简单一点来说就是页面之间的传值,当页面A跳转到页面B(可能会附带参数,这不影响),或者是页面B将数据返回给页面A.【代理模式(协议和代理者)是一种设计
模式,原理是通过一个统一的模式,也可以理解为装在一个盒子里面。协议定义一组方法,由某一个类负责实现;代理者作为某个类的一个属性,通常是另一个类的实例
对象、可以负责完成原来那个类不好解决的问题】。代理本身就是一个属性而已,代理的使用往往配合着协议。可能这个类那个类把你们都弄糊涂了,那么我们下面就来看看我们如何去使用他,这也是方便我们去了解这个模式的真正用途。

如何使用代理
在这里必须要提一下,我们在练习的时候怎么去用他都没事,要是在真正项目中,两个页面简单跳转传值也用这个代理,说实话,确实有点过了。在页面B中定义
个协议,声明ー个代理对象。在页面A中,将自己设置为页面B的代理并且完成代理方法。

什么时候使用代理
当一个对象无法直接获取到另一个对象的指针,希望对那个变量进行一些操作,便可使用代理模式。

话不多说,直接看事例:

时间: 2024-10-14 07:49:05

IOS-协议和代理的相关文章

iOS协议、代理、Block和回调、类别

[协议](Protocol) //协议是用来规范接口,实现对象间交互的一种机制.类似于JAVA中的接口,可以模拟. 协议的权限 @optional//可选的 @required//必须的 [代理] 一.代理的概念 [注]代理是实现两个类的对象间通信的一种机制. [委托方]主动方 持有带协议的id指针,可以使用协议. [代理方]被动方 遵从协议,实现方法. 代理回调(反向传值) //当我们需要完成某个功能模块,但不知道使用功能模块的是哪个对象,通过协议,可以规定接收数据的对象通过哪个方法获得数据.

ios开发之代理&&协议(补充篇)

一.理解协议与代理 协议: 协议是一个方法签名的列表,在其中可以定义若干个方法.根据配置,遵守该协议的类会去实现这个协议中规定的若干个方法. 代理: 代理是一个概念,很难用一个名词去定义(如我们可以说协议其实就是一个方法列表).它更像是一种关系,我要做某一个事情,但我自己不想去做这件事,我委托其他人帮我去做这件事.这个时候,这位其他人就是我的代理. 二.协议的使用 在定义协议时,可以通过@required与@optional来配置遵守这个协议必须去实现的方法和可以选择的方法.譬如: @proto

【IOS开发之Objective-C】协议和代理

在现实生活中我们存在各种各样的协议,但是都有一个共同点,就是拟定的协议,就要遵守,不遵守就是违约.在OC中也有协议这一个概念而且和我们现实生活中的协议的特点是类似的.有时我们自己想做什么事,但是现在没这个能力自己去做,亲力亲为,我们就需要找代理来帮我们做了.那么在OC中也有代理这个概念.下面就简单的说说OC中的协议和代理. 一.协议 在<[IOS开发之Objective-C]对象的交互>中实现了一种对象的交互的方式.在OC中还有其他方式,比如说协议,在OC中用协议来规范接口,是实现对象之间的交

ios中的代理与协议(delegate)

源码地址 :http://download.csdn.net/download/swanzhu/9016861 一.理解协议与代理 协议 协议的格式:@protocol关键字:协议的声明 例如 @protocol CustomAlertViewDelegate <NSObject> <methods>协议的方法 @optional //此关键字下声明的方法,是可选实现的方法. @required //此关键字声明的方法为,必须实现的方法,如果不实现,编译会报警告,程序运行崩溃. /

iOS基础——浅谈个人对协议、代理的理解

阅读前的知识储备 请确保在阅读本文时,曾经不止一次亲自动手敲过有关代理模式的代码.如果没有,请在积累一定的经验后阅读,相信会更有收获.也希望大神不吝指教. 什么时候要用协议和代理? 下面举一个例子,谈谈个人对代理.协议的理解,希望能够起到抛砖引玉的效果. 假设现在有这么一个任务需求:页面A需要跳转到页面B(有可能会传入一些参数),页面B填写或者处理一些信息在跳转回页面A的同时还需要把数据返回A. 不要为了用代理模式而用代理模式 代理模式只是一种设计模式,它的价值在于通过一个统一的模式,解决一个原

第七讲.NSDate,category(分类),extension(延展),protocol(协议),delegate(代理)

一.掌握NSDate和NSDateFormatter的使用 NSDate是Cocoa中?用于处理日期和时间的基础类,封装了某一给定的时刻(含日期,时间,时区). 了解NSDate的创建,如何计算当前时间,时间间隔,以及时间日期与字符之间的互转. 1>.NSDate创建,当地时间计算,时间按间隔计算,时间与字符之间的互转 练习题1:计算当前时间与一个固定时间按的时间差 练习二:字符串转化为日期对象 二.掌握Category的定义和使用(只能为类扩展类方法或实例方法) 1.主要作用是为:没有源代码的

IOS学习3——代理

本文转载自:你真的了解iOS代理设计模式吗? 在项目中我们经常会用到代理的设计模式,这是iOS中一种消息传递的方式,也可以通过这种方式来传递一些参数.这篇文章会涵盖代理的使用技巧和原理,以及代理的内存管理等方面的知识.我会通过这些方面的知识,带大家真正领略代理的奥妙.写的有点多,但都是干货,我能写下去,不知道你有没有耐心看下去.本人能力有限,如果文章中有什么问题或没有讲到的点,请帮忙指出,十分感谢! 一.iOS中消息传递方式 在iOS中有很多种消息传递方式,这里先简单介绍一下各种消息传递方式.

OC第九节——协议与代理

一.理解协议与代理 协议: 协议就是需要相互遵守的约定.规范:需要去实现协议中规定的方法. 代理: 代理是一个概念,很难用一个名词去定义(如我们可以说协议其实就是一个方法列表).它更像是一种关系,我要做某一个事情,但我自己不想去做这件事,我委托其他人帮我去做这件事.这个时候,这位其他人就是我的代理.代理模式是一种设计思想,是人们在开发过程中经验的积累与总结,他们发现,以这样的形式去写代码,会降低代码间的耦合,这样就能增加代码的重用性,就能提高开发效率,节省开发时间. 二.协议的关键词 @requ

C++模拟实现Objective-C协议和代理模式

Objective-C的协议和代理是运用最多的特性之一,可以说在苹果系列开发中无处不在.事实上很多人都不知道其背后的原理.事实上简单点说,这就是设计模式中的代理模式的经典运用.代理模式简单点说就是为其他对象提供一种代理以控制对这个对象的访问,而在OC当中形象点说就是如果A完成一件事,但是自己不能完成,于是他找个代理人B 替他完成这个事情,他们之间便有个协议 (protocol),B继承该协议来完成A代理给他的事情. 举个例子:有一个婴儿,他本身不会自己吃饭和洗澡等等一些事情,于是婴儿就请了一个保

iOS 协议 protocol

iOS中的协议说白了就是方法的声明,只声明不需要实现,实现的部分由遵守协议方完成. 先看个协议的小例子:这个例子是先给出两个协议,再创建两类人遵守协议. 流氓协议(RogueDelegate.h) #import <Foundation/Foundation.h> /**流氓协议*/ @protocol RogueDelegate <NSObject> @required // 必须实现的方法 /**吃*/ - (void) eat; /**骗*/ - (void) lie; @o