objectc 代理协议通知KVO及MVC
来源:互联网 发布:extern c语言 编辑:程序博客网 时间:2024/06/07 17:23
协议,就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现。
委托(代理),顾名思义就是委托别人办事,就是当一件事情发生后,自己不处理,让别人来处理。
1. 同时用到协议及委托
有两个类,一个是控制器类,一个是view类
当用户操作view时,需要通知控制器,让控制器去处理一些逻辑时,需要用到委托及协议
controller.h
#import "view.h"
@interface Controller:NSObject<TestDelegate>{
View* _view;
}
@end
controller.m
@implement
-(void) viewDidLoad
{
view =[ [View alloc] init];
view.delegate = self; //这里用到委托,意思就是View把事情交给Controller去处理。 体现出MVC的思想
}
// View 其实并没有实现testMethod1及testMethod2, 在这里实现
-(void) testMethod1
{
//deal logic
}
-(void) testMethod2
{ //deal logic
}
view.h
@protocol TestDelegate
-(void) testMethod1
-(void) testMethod2
@end
@interface View:NSObject{
id <TestDelegate> delegate;
}
view.m
#implement
// 处理view上的一些用户事件
-(void)OnAction1
{
[delegate testMethod1];
}
-(void)OnAction2
{
[delegate testMethod2];
}
@end
2. 单独用到协议
可以看一下NSObject类,这是所有objectc 类的基类,它实现了<NSObject> 协议
当有一个类NSString* str;
可以[str retain];
retain 就是NSObject协议里指定的一个方法,而并不是NSObject类的成员方法
我相信在NSObject类里有
-(id) retain
{
// some code
return self;
}
NSObject类会去实现这个方法,因为这个方法是NSObject协议里规定的。
学过C++的人 会有所体会这里的协议 有点像C++里的抽象类。这样是否会有助于理解?
- objectc 代理协议通知KVO及MVC
- KVO, 通知,单例,协议,代理,KVC(待续)
- 代理 kvo和通知
- KVO、BLOCK、代理、通知
- KVO&代理&block&通知中心
- 代理,通知,KVO的区别
- 12.代理、通知、KVC\KVO
- iOS代理 KVO 通知-徐明伟
- iOS开发 kvc kvo 委托代理 协议 通知 简述 和使用场景
- 02-单例-通知-KVO-Block-代理
- 监听事件方法之通知/代理/kvo
- 关于代理、通知和KVO区别
- 通知,代理,KVO的简单使用
- 通知和kvo以及代理的区别
- 代理丶通知丶KVO的详解
- ObjectC----NSDate和Extension以及代理协议的用法
- ObjectC----NSDate和Extension以及代理协议的用法
- 三种传值(Block、代理协议、通知)
- 产品管理与软件开发的关系
- JavaScript内核系列 第1章 前言及概述
- C/C++ 编译器和调试器以及静态库、动态库使用汇总
- 【转载】---C语言里的堆和栈的区别
- win7下安装sql server 2000提示服务器组件在此操作系统上不受支持
- objectc 代理协议通知KVO及MVC
- resource.h中的值是如何分配的
- C、C++ 解析 XML 库大全
- Mysql数据库备份和还原常用的命令
- objectc 属性
- GridView使用经验总结
- 逻辑地址、线性地址、物理地址和虚拟地址
- 自己动手实现纯Web远程监控系统(纯Web,跨浏览器)
- 如何在windows下安装linux双系统,不用虚拟机