iOS中使用代理的步骤与通知简介

使用代理额步骤:

1.先搞清楚谁是谁的代理(delegate)

2.定义代理协议,协议名称的命名规范:控件类名 + Delegate

3.定义代理方法
     a.代理方法一般都定义为@optional
     b.代理方法名都以控件名开头
     c.代理方法至少有1个参数,将控件本身传递出去

4.设置代理(delegate)对象  (比如myView.delegate = xxxx;)
     a.代理对象遵守协议
     b.代理对象实现协议里面该实现的方法

5.在恰当的时刻调用代理对象(delegate)的代理方法,通知代理发生了什么事情
(在调用之前判断代理是否实现了该代理方法)

通知简介:

1.一个完整的通知包含3个属性
 - (NSString *)name;      —————通知名称
 - (id)objec;——————————通知发布者
 - (NSDictionary *)userInfo;———一些额外的信息

2.如何初始化一个通知(NSNotification)对象
+ (instancetype)notificationWithName:(NSString *)aName  object:(id)anObject;
+ (instancetype)notificationWithName:(NSString *)aName  object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
- (instancetype)initWithName:(NSString *)name  object:(id)object userInfo:(NDDictionary *)userInfo;

时间: 2024-10-21 20:39:49

iOS中使用代理的步骤与通知简介的相关文章

软件开发常用设计模式—iOS 中的代理模式总结

比如现在有一个人,想要买一张电影票,但是她很忙碌,没时间去买,那怎么办呢?只能说委托给另一个人去买. 此时,需要 person 给 other 发送消息,通知 other 去给她买电影票,而 other 也要反馈消息给 person,此时 other 就是一个代理人,person 委托代理人去办事情(买票).代理人是给委托人代办一些事情的人.具体代理人怎么做的这些事情,委托人不管,委托人只看反馈. 先看代理设计模式的基本原理 #import <Foundation/Foundation.h>

ios中的代理与协议(delegate)

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

iOS中的zxing集成步骤

参照网上各大神文章,自己总结了下如下,欢迎大家指正与交流!(主参照:http://blog.csdn.net/brokge/article/details/9045629) 1. 到 github下载开源库 (https://github.com/zxing/zxing) 2. 得到代码后只需要 cpp部分和iphone部分,如下: 3. 继续剪裁 cpp 和iphone文件夹,如下: 4.将修改好的zxing文件夹全部添加到我们的目标工程中,并且把ZXingWidget.xcodeproj文件

iOS中 委托 代理 协议 的理解

1.协议:协议不是类,是一种约定,他声明的方法和属性,都是独立于其他任何特定的类,并本身不会去实现他,让使用他的类去实现他,比如UITableView,需要实现他的cellForRowAtIndexPath等协议,谁用谁知道. 协议的两个预编译指令@optional:可以选择的方法.@required:必须执行的方法. 我们打开UITableView的头文件,看下他的声明: @protocol UITableViewDataSource<NSObject> @required - (NSInt

iOS中delegate代理对象使用weak和assign哪个?

在定义delegate对象的时候,我们经常看到可以使用weak 和 assign 但是到底哪个使用更合适呢? 首先:使用assign,声明的对象即使对象销毁了,但是指针依然存在,这样造成声明的对象变成了野指针,这样导致内存泄露. 而使用 weak ,当对象销毁时,即将delegate = nil,这样不会产生野指针这种情况出现. 所以答案很明显 我们在定义代理对象的时候,通常使用weak来修饰.

IOS学习3——代理

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

iOS中的触摸事件(TouchView) - (代理响应) - (实现touch的按钮化)

#import "RootViewController.h" #import "ActionView.h" #import "UIColor+MyUIColor.h" @interface RootViewController () @end @implementation RootViewController - (void)viewDidLoad { [super viewDidLoad]; //self指的是当前对象 RootViewCon

iOS中的自定义代理模式

iOS中的自定义代理模式 自定义代理模式分为6步,遵循这6步,就能把代理完整的实现. 1.定义协议(协议中存放代理的任务).我们对于有的自定义的布局视图,并不会带有协议,为了满足我们有时候的开发需求,需要添加代理.那么我们就要先定义一个协议.如下:在自定义视图的DelegateView.h文件中定义一个DelegateViewDelegate协议,协议默认的都是必须的实现的方法,可以根据需求来添加可选实现的方法. 1.定义协议 2.定义代理属性,用来存储代理对象. 2.定义代理属性 3.为Del

iOS中的通知(NSNotification)

iOS中的通知(NSNotification) 前言 通知中心是一个单例.通知在iOS中是一种设计模式.每一个应用程序都有一个通知中心NSNotificationCenter实例, 专门负责协助不同对象之间的消息通信. 任何一个对象都可以向通知中心发布NSNotification, 描述自己在做什么,而任何注册了该通知的对象该特定通知发布的时候会收到这个通知. 获取通知中心对象 通过下面的方式来获取通知中心对象: 1 2 3 NSNotificationCenter *center = [NSN