- 浏览: 458164 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (538)
- C/C++ Primer (69)
- Objective-C Primer (102)
- Python Primer (19)
- JavaScript Primer (1)
- Java Primer (37)
- PHP Primer (17)
- 泛 Linux (37)
- Shell Script (21)
- APUE (21)
- UNP__1&2 (19)
- NetWork (7)
- Oracle周边 (38)
- Mysql里边 (6)
- Windows技 (9)
- 简单算法 & 数据结构 (14)
- 设计模式 (6)
- GTK历程 (12)
- 工具使用 (25)
- 杂事 (23)
- 一些概念 (17)
- Web方面 (10)
- myCodeTools (9)
- ^未 竟$ (13)
- 硬件通信 (2)
- Games (1)
最新评论
http://blog.csdn.net/a6472953/article/details/7817538
http://www.cnblogs.com/pengyingh/articles/2383629.html
http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177i
-------------------------------
cocoa的KVO模型中,有两种通知观察者的方式,自动通知和手动通知。
自动通知由cocoa在属性值变化时自动通知观察者,
手动通知需要在值变化时调用 willChangeValueForKey:和didChangeValueForKey:
通知调用者。为求简便,我们一般使用自动通知。
要使用手动通知,需要在 automaticallyNotifiesObserversForKey方法中明确告诉cocoa,哪些键值要使用自动通知:
http://www.cnblogs.com/pengyingh/articles/2383629.html
http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177i
//注册监听 [mTextView addObserver:self forKeyPath:@"text" options:NSKeyValueObservingOptionNew context:nil]; //处理属性改变事件 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { UITextView *mTextView = object; NSLog("the textView content is change!!"); }
-------------------------------
cocoa的KVO模型中,有两种通知观察者的方式,自动通知和手动通知。
自动通知由cocoa在属性值变化时自动通知观察者,
手动通知需要在值变化时调用 willChangeValueForKey:和didChangeValueForKey:
通知调用者。为求简便,我们一般使用自动通知。
要使用手动通知,需要在 automaticallyNotifiesObserversForKey方法中明确告诉cocoa,哪些键值要使用自动通知:
//重新实现NSObject类中的automaticallyNotifiesObserversForKey:方法,返回yes表示自动通知。 + (BOOL)automaticallyNotifiesObserversForKey:(NSString*)key { //当这两个值改变时,使用自动通知已注册过的观察者,观察者需要实现observeValueForKeyPath:ofObject:change:context:方法 if ([key isEqualToString:@"isFinished"]) { return NO; } return [super automaticallyNotifiesObserversForKey:key]; }
手动通知在需要改变值_isFinished变量的地方,使用 [self willChangeValueForKey:@"isFinished"]; finished = YES; [self didChangeValueForKey:@"isFinished"];
发表评论
-
float equal
2013-05-23 18:21 818- (BOOL)floatA:(float)f1 equalB ... -
Coding Guidelines for Cocoa
2013-05-17 16:53 665参考: https://developer.apple.com ... -
Cell
2013-05-16 14:32 788- (void)tableView:(UITableView ... -
Object-C编程规范
2013-05-15 10:49 7341.参考苹果的文档 “Coding Guidelines fo ... -
MacPorts
2013-02-28 18:12 613http://blog.csdn.net/lynjay/art ... -
ios Associative 扩展属性
2013-01-08 16:45 1537@dynamic和@synthesize http://blo ... -
ObjC Dynamic
2013-01-08 15:21 773原文:http://www.onevcat.com/2012/ ... -
UITableView & UITextField
2012-11-08 00:35 834keyboard event ---------------- ... -
UIWebView
2012-10-24 11:06 744http://hi.baidu.com/wei_1123/it ... -
Device orientation
2012-10-15 16:20 746- (BOOL)shouldAutorotateToInter ... -
system notification
2012-10-12 15:22 625for UIApplication These notifi ... -
NSZombies
2012-08-09 08:51 667NSZombies搞定EXC_BAD_ACCESS http: ... -
Quartz 2D Programming Guide
2012-07-17 00:51 593Quartz 2D 内容不少啊 Graphics Trans ... -
NSCache
2012-07-12 14:25 755http://thenewself.blog.163.com/ ... -
NSCoding
2012-07-12 13:39 959@protocol NSCoding - (void ... -
分析 crash 报告的方法
2012-07-12 01:15 582http://blog.csdn.net/toss156/ar ... -
Multi-touch
2012-07-11 23:33 724智能与灵活与工作量>_< http://www.o ... -
iOS的多核编程和内存管理
2012-07-11 18:14 715http://anxonli.iteye.com/blog/1 ... -
NSCopying
2012-07-10 15:54 519http://www.apple.com.cn/develop ... -
NSTimeZone
2012-07-10 14:42 438http://developer.apple.com/libr ...
相关推荐
在iOS开发中,Key-Value Observing(KVO)是一种强大的机制,允许对象监听其他对象属性的变化。在标题“iOS KVO 监听frame”中,我们关注的是如何使用KVO来跟踪和响应UI控件(如UIView)的frame属性变化。这在布局...
KVC和KVO是Objective-C及Swift中用于对象属性间接访问和观察的重要技术,它们为开发者提供了灵活的数据绑定和动态属性更新机制。在iOS开发中,尤其是在MVVM(Model-View-ViewModel)架构中,这两项技术的应用尤为...
总之,KVC和KVO是Objective-C中的重要特性,它们提供了一种动态访问和监听对象属性的方式,使得代码更加灵活和可扩展。通过深入理解和实践KVC_KVO_Test项目,初学者能够更好地掌握这些技术,并将其应用于实际的iOS...
在iOS开发中,Key Value Coding (KVC) 和 Key Value Observing (KVO) 是两种强大的数据处理技术,它们提供了一种间接访问对象属性的方法,以及动态监控属性变化的能力。 KVC,全称Key Value Coding,是Objective-C...
KVC提供了一种间接访问对象属性的方式,而KVO则允许我们监听并响应某个对象属性值的变化。 ### Key-Value Coding (KVC) KVC是一种非侵入性的方法,通过键(key)来间接访问对象的属性,即使这些属性没有公开的...
**KVC (Key-Value Coding)** 和 **KVO (Key-Value Observing)** 是Objective-C中的两种重要特性,它们在iOS和Mac OS X开发中被广泛用于对象属性的动态访问和观察。在这个“KVC-KVO-demo”项目中,我们可以深入理解这...
在Swift编程中,KVC(Key-Value Coding)和KVO(Key-Value Observing)是两种用于对象属性间接访问和动态变化监听的技术。这两种机制是Objective-C中的特性,但Swift也提供了支持,使得开发者可以更灵活地处理数据...
Swift中的Key-Value Coding(KVC)和Key-Value Observing(KVO)是两种强大的数据绑定技术,它们允许程序员间接访问对象的属性并监听这些属性的变化。在本文中,我们将深入探讨这两种技术的使用方法、工作原理以及...
- **定义**:KVO是一种观察对象属性变化的技术,当被观察的属性改变时,会自动调用观察者的回调方法。 - **注册观察**:使用`-[NSObject addObserver:forKeyPath:options:context:]`方法添加观察者。 - **监听回...
KVC是Objective-C提供的一种间接访问对象属性的机制,允许开发者通过键(key)来获取或设置对象的属性,而无需知道具体的setter和getter方法。这种技术特别适用于动态属性或者不希望直接暴露属性名的情况。 1. **...
KVO则是基于KVC实现的,允许你监听对象属性的变化。当你注册一个对象并观察其特定属性时,当该属性改变时,系统会自动调用观察者的回调方法。例如: ```objc [human addObserver:self forKeyPath:@"age" options:...
**KVO (Key-Value Observing)** 是Objective-C的另一个强大特性,允许对象监听其他对象属性的变化。当被观察的属性值发生变化时,KVO会自动调用观察者的回调方法。这在实现数据绑定、响应式编程或者需要在属性改变时...
Swift5.2中的Key-Value Observing(KVO)是一种观察者模式的实现,它允许一个对象监听并响应另一个对象的属性变化。在iOS、macOS等Apple平台的开发中,KVO是一种强大的机制,可以帮助我们实现数据绑定和动态更新视图...
**KVO(Key-Value Observing)与KVC(Key-Value Coding)是Objective-C中的两种重要编程概念,主要用于对象属性的监听与间接访问。在这个DEMO中,我们将深入探讨这两种技术的工作原理、应用场景以及如何在实践中使用...
KVC是一种间接访问对象属性的机制,通过字符串键(key)来操作对象的值(value)。它提供了灵活的数据访问方式,特别是在处理动态属性或者需要批量操作属性时非常有用。 **KVC的常用方法:** 1. **获取值**:`-...
比如在上述例子中,通过KVC可能实现了动态地修改数组,然后利用KVO监听这个修改,当数组内容变化时,自动更新UI。这种组合使用能实现强大的数据驱动和响应式编程。 总结来说,KVO和KVC是Objective-C中实现数据绑定...
KVO(Key-Value Observing)是基于KVC的,允许对象监听并响应其他对象的属性变化。当一个对象注册为另一个对象的观察者时,一旦被观察对象的某个属性值发生变化,KVO会自动调用观察者的回调方法。 ### 5. 注意事项 ...
总结来说,KVC和KVO是Objective-C中强大的工具,它们简化了对象属性的访问和变化检测,使得数据绑定和响应式编程变得更加容易。理解并熟练运用这两项技术,能极大地提高iOS应用的可维护性和灵活性。
- KVO是观察者模式的实现,用于监听对象属性变化并作出响应。 - NSNotification是全局的通知机制,适用于广播消息和事件传播。 - Delegate是对象间的一对一通信方式,主要用于事件处理和控制流。 在选择使用哪种...