KVC KVO 通知

转载 2015年11月19日 16:16:18

OC学习总结之KVC KVO 通知

 
1、KVC
KVC(KeyValueCoding) “键-值-编码”是一种可以直接通过字符串的名字(key)来访问类实例变量的机制,是通过setter、getter方法访问。
属性的访问和设置
KVC可以用来访问和设置实例变量的值。key是属性名称
设置方式:[self setValue:aName forKey:@"name"]
等同于 self.name = aName;
访问方式: aString = [self valueForKey:@"name"]
等同于 aString = self.name;
2、KVO 观察者
KVO(KeyValueObserver) “键-值-监听”定义了这样一种机制,当对象的属性值发生变化的时候,我们能收到一个“通知”。观察者更准确
NSObject提供了监听机制。所有子类也就全都能进行监听
KVO是基于KVC来实现的。
实现监听步骤
(1)注册监听对象。anObserver指监听者,keyPath就是要监听的属性值,而context方便传输你需要的数据,它是个指针类型。
-(void)addObserver:(NSObject *)anObserver
    forKeyPath:(NSString *)keyPath
      options:(NSKeyValueObservingOptio
ns)options           
      context:(void *)context//(void*)是任何指针类型
其中, options是监听的选项,也就是说明监听返回的字典包含什么值。有两个常用的选项:
NSKeyValueObservingOptio
nNew 指返回的字典包含新值。
NSKeyValueObservingOptio
nOld   指返回的字典包含旧值。
(2)实现监听方法。监听方法在Value(属性的值)发生变化的时候自动调用。
-(void) observeValueForKeyPath:(NSString *)keyPath
 
                    ofObject:(id)object
 
                      change:(NSDictionary *)change
 
                     context:(void *)context
其中,object指被监听的对象。change里存储了一些变化的数据,比如变化前的数据,变化后的数据。
3、通知
通知是iOS开发框架中的一种设计模式,内部的实现机制由Cocoa框架支持。
通知一般用于M、V、C的间的信息传递。像我在设置页面设置App皮肤。
M是modol模型 V是view视图 C是control控制器。
系统通知
//注册通知
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didFinish:)//didFinish:是方法名 
  self(谁的)和  didFinish:确定方法
name:MPMoviePlayerPlaybackDid
FinishNotification
 object:nil];
selector是方法名 
   class是描述类的类   SEL method=@selector(方法名)
通知用完要移除
//移除通知
[[NSNotificationCenter defaultCenter] removeObserver:self
 
        name:MPMoviePlayerPlaybackDidFinishNotification
 
                                            object:nil];



移动开发(IOS) – Objective-C-10-KVC、谓词、KVO与通知

移动开发(IOS) – Objective-C-10-KVC、谓词、KVO与通知 By docoder in 博客, 学习 on 2014/05/31 1.KVC 1.1.基本概念...

iOS开发 kvc kvo 委托代理 协议 通知 简述 和使用场景

kvc: 简单来说, 是存取类属性, 通过字符串来访问对象属性。 1、只针对类属性,设置键值对 2、设置setValue: forKey:,即forKey只能为类属性 3、取值valueForK...

【iOS沉思录】KVC与KVO,NSNotification通知

什么是键值编码KVC,键路径是什么? 什么是键值观察KVO? 键值编码KVC: 键值编码是一种在NSKeyValueCoding非正式协议下使用字符串标志间接访问对象属性的一种机制,也就是访问对象变...
  • cordova
  • cordova
  • 2017年01月21日 23:08
  • 674

iOS中 KVC\KVO和通知三者之间的小结

KVC 可以改变系统内 readonly 的属性 setValue: forKey setValue: forKeyPath //forKeyPath包含了forKey的功能,以后使用forKe...

iOS开发之通知中心、KVC、KVO

前言 本文的内容可能跟之前相比会比较长,主要因为讲了通知、KVO、KVC三个知识点,但我自认为条理还算清晰。建议学完一个敲一下,再进行下一个知识点的学习。 通知中心 What 是一种一...

通知,JSONMOdel,kvo,kvc,网络,xml

大多数APP都是依托于服务器的,由服务器负责数据的管理交互,分发,筛选等等。APP做的事情就是发送请求,接收数据。当然有些请求也可以伴随数据的上传。 请求(Request):APP客...

iOS开发-Day24-OC KVC&KVO&通知

一、KVC操作OC中的KVC操作就和Java中使用反射机制去访问类的private权限的变量,很暴力的,这样做就会破坏类的封装性,本来类中的的private权限就是不希望外界去访问的,但是我们这样去操...

KVO, 通知,单例,协议,代理,KVC(待续)

KVO的全称是Key-Value Observing,它实现了一种机制,对所关心的属性对象添加观察者,当属性值发生变化时会得到通知,我们可以对变化做相应的处理。看过设计模式的同学应该知道,这是一种典型...

Objective-C KVC/KVO NSNotification(通知)的简单理解与应用

KVC :Key-Value Coding 键值编码 KVO :Key-Value Observing 键值观察 NSNotificationCenter 通知...

Objective-c KVC and KVO and 通知

一、  目标:1、会使用 KVC KVO  2、了解 通知 1、KVC:字符串 表征机制  KVC可以用来访问和设置属性的值。 2、任何对象都可以 进行键值 编码。 3、KVO:当对象 属性值 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:KVC KVO 通知
举报原因:
原因补充:

(最多只允许输入30个字)