目标:监听NSMutableArray对象中增加了什么代码如下:C代码 -(void)viewDidLoad{[superviewDidLoad];self.dataArray=[NSMutableArrayarrayWithObject:@"1"];[selfaddObserver:selffor...
分类:
移动开发 时间:
2015-01-08 14:59:24
阅读次数:
212
Key-Value Coding (KVC)
KVC,即是指 NSKeyValueCoding,一个非正式的
Protocol,提供一种机制来间接访问对象的属性。KVO 就是基于 KVC 实现的关键技术之一。
一个例子:
@interface Person:NSObject
{
NSString *name;
NSString *address;
}
...
分类:
其他好文 时间:
2015-01-06 18:04:25
阅读次数:
229
前一篇文章我们介绍了OC中最常用的文件操作,那么今天来看一下OC中的一个比较有特色的知识点:KVC和KVO一、KVC操作OC中的KVC操作就和Java中使用反射机制去访问类的private权限的变量,很暴力的,这样做就会破坏类的封装性,本来类中的的private权限就是不希望外界去访问的,但是我们这...
分类:
其他好文 时间:
2015-01-03 14:36:22
阅读次数:
250
在前一篇文章中我们介绍了OC中很常用的两个技术:KVC和KVO,今天我们来看一下OC中另外的一个常用技术:通知(Nofitication)其实这里的通知和之前说到的KVO功能很想,也是用于监听操作的,但是和KVO不同的是,KVO只用来监听属性值的变化,这个发送监听的操作是系统控制的,我们控制不了,我...
分类:
其他好文 时间:
2015-01-03 14:31:29
阅读次数:
180
简单MVCM---model:模型,相当于饭馆里的厨师,厨师提供他会的菜式给老板,老板不会关心他是怎么去做的。V---view:视图,相当于饭馆里的服务员,服务员从老板那里拿到菜单,提供给客户。C---controller:控制器,相当于饭馆里的老板。老板从厨师那里得到菜式,弄成菜单提供给服务员处。...
分类:
Web程序 时间:
2015-01-01 00:02:44
阅读次数:
565
键值编码(KVC)是Cocoa一个通用的用于获取和设定值的一个协议。在编程中,“通用”这词是用于描述一种可以适用于不同情境的实现方式。通用代码可以减少项目中代码总量并使得软件可以处理程序员无法预知的情景。Cocoa至始至终都很重视通用、可复用代码。KVC版看起来需要更多代码输入。让就让我选择一个更能...
分类:
其他好文 时间:
2014-12-31 17:54:10
阅读次数:
142
1.NSNotification和KVO的区别和用法是什么 ?什么时候该使用通知,什么时候该使用KVO,它们在实现上有什么区别?如果用delegate 和protocol来实现类似的功能可能吗?如果可能会有什么潜在的问题?如果不能为什么 ?KVO只能监测属性的变化,但是实现了自动监测,当属性值变化时...
分类:
移动开发 时间:
2014-12-30 09:59:55
阅读次数:
142
在这篇文章中,我会实现一个自己用的简单KVO类,我认为KVO非常棒,然而对于我大部分的使用场景来说,有这两个问题:1. 我不喜欢在observeValueForKeyPath:ofObject:change:context:方法里通过keyPath值来做调度,当Observe比较多的对象时,会使得代...
分类:
其他好文 时间:
2014-12-26 20:18:03
阅读次数:
229
09年的一篇文章,比较深入地阐述了KVO的内部实现。KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改变时,相应的objects会被通知到。在其他语言中,这种观察者模式通常需要单独实现,而在Objective-C中,通常无须增加额外代码即可使用。概览这是怎么实现的呢?其实...
分类:
其他好文 时间:
2014-12-26 20:12:46
阅读次数:
176
KVC提供了一种在运行时而非编译时动态访问对象属性与成员变量的方式,该方法不需要调用get和set方法和变量实例就可以访问对象,KVC默认的实现方法有NSOject提供,这种方法及支持对象也支持简单数据类型。
第一、在OC中访问变量的几种方式:
1、设置为public型,通过->直接访问:
代码为:
@interface Book : NSObject
{
@public...
分类:
其他好文 时间:
2014-12-23 19:34:37
阅读次数:
1406