KVO 通知 代理

本文详细介绍了Objective-C(OC)中的代理、通知(NSNotification)和Key-Value Observing(KVO)机制。在MVC设计模式中,代理常用于一对一交互,通知实现一对多事件传递,而KVO则用于监听对象属性变化。文章通过实例演示了三种机制在简单登录界面的应用,并总结了它们的使用场景:代理适用于对象间有直接关联的情况,通知适用于无直接关联但需要传递信息的场景,而KVO则适合单方面监听对象属性变化的情况。
摘要由CSDN通过智能技术生成

1、代理

(1)代理简述

delegate可以让View和Controller进行交互。
代理是一种软件设计模式,通过@protocol形式体现,是一对一的传递。
在这里插入图片描述

(2)在MVC中的用法

  1. 在View.h中自定义代理并提供了两个方法:
@protocol LoginViewDelegate <NSObject>
- (void)loginpass;
- (void)resighpass;
@end

@interface LoginView : UIView

@property id<LoginViewDelegate> delegate;

@end
  1. 在View.m中触发代理方法,执行代理回调。
if ([_delegate respondsToSelector:@selector(loginpass)]) {
   
        [_delegate loginpass];
}
if ([_delegate respondsToSelector:@selector(resighpass)]) {
   
        [_delegate resighpass];
}
  1. 在Controller.m中声明代理,实现代理方法,调用代理方法。
#import "LoginViewController.h"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值