友好的KVO】的更多相关文章

更友好的KVO 前言 观察者模式是大家在开发过程中每个人都要使用的一种设计模式,在iOS的开发流程中,KVO则是这一开发模式的主要实践手段,观察一个属性,当属性值发生变化的就能能够拿到这个属性的新.老.初始化等行为事件,这种模式对于处理model反馈给Controller层是很实用的,在MVC和MVVM等设计模式中都是有着很广泛的应用.但是苹果提供的KVO的API没有那么的友好,在我们的使用中要写一大堆的代码,还需要在delloc的时候进行移除,这样对于工程代码来说,很明显就是一种"坏味&quo…
文章结构如下: Why? (为什么要用KVO) What? (KVO是什么) How? ( KVO怎么用) More (更多细节) 原理 自己实现KVO 在我的上一篇文章浅谈 iOS Notification中,我们说到了iOS中观察者模式的一种实现方式:NSNotification 通知,这次我们再来谈谈iOS中观察者模式的另一种实现方式:KVO . Why? 假如,有一个person类,和一个Account类,account类中又有两个公开的属性,balance和interestRate,当…
一年前翻译了本文的一部分,最近终于翻译完成.虽然此设计思想的提出已经好几年了,但是还是觉得应该在国内推广一下,让大家知道“内容策略”,“移动优先”,“响应式设计”,“原子设计”等设计思想和技术的根源.这些概念最早其实是由luke wroblewski,brad frost等人在同一个设计思想框架下提出的.笔者经“面向未来的友好设计(Future Friendly Web Design)”设计理念联合创始人Jason Grigsby授权,将此设计思想框架首次翻译为中文版本. 能力所限,敬请指正,欢…
异常或者error code汇总:https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_concepts_core_data_objects.htm 做项目的时候有很多异常是我们经常遇到的: 1.空指针异常: 2.死锁或者超时: 3.级联删除时无级联表操作权限导致删除失败: 4.一次请求查询超过50000条数据: 5.查询时偏移量超过2000: 6.不满足Validation Rule条件:…
1,KVC(键值编码)  Key Value Coding 1.1在C#中,可以通过字符串反射来获取对象,从而对对象的属性进行读写,Object-C中有同样的实现,通过字符串(属性名词)对对象的属性进行读写. 1.2KVC的操作方法由NSKeyValueCoding协议来定义,而Object对象实现该协议,所以所有的对象都具有KVC功能 动态设置:setValue:属性值 forKey:属性名    setValue: 属性值forKeyPath:属性路径 动态读取:valueForKey:属性…
原文链接:http://blog.csdn.net/dqjyong/article/details/7685933 前面分别讲了delegate.notification和KVO的实现原理,以及实际使用步骤,我们心中不禁有个疑问,他们的功能比较类似,那么在实际的编程中,如何选择这些方式呢? 在网上看到一个博客上详细的分析了三者之间的区别以及各自的优势,博文地址为http://blog.shinetech.com/2011/06/14/delegation-notification-and-obs…
KVC 键值编码    全称是Key-value coding,翻译成键值编码.它提供了一种使用字符串而不是访问器方法去访问一个对象实例变量的机制.        1.通过key(成员变量的名称)设置value(成员变量的值)    - (void)setValue:(id)value forKey:(NSString *)key;    2.通过keyPath(成员变量的路径)设置value(成员变量的值)    - (void)setValue:(id)value forKeyPath:(N…
1. KVC And KVO  的认识 KVC/KVO是观察者模式的一种实现  KVC全称是Key-value coding,翻译成键值编码.顾名思义,在某种程度上跟map的关系匪浅.它提供了一种使用字符串而不是访问器方法去访问一个对象实例变量的机制.KVO全称是Key-value observing,翻译成键值观察.提供了一种当其它对象属性被修改的时候能通知当前对象的机制.再MVC大行其道的Cocoa中,KVO机制很适合实现model和controller类之间的通讯. 2. KVC And…
KVO :Key-Value Observing 它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知.简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了. 例 : self.array = [NSMutableArray array]; 1.  添加一个观察者 [self addObserver:self forKeyPath:@"array" options:NSKeyValueObservingOptionNew | NSKeyValu…
概述 由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby.Python的动态特性,例如动态类型.动态加载.动态绑定等.今天我们着重介绍ObjC中的键值编码(KVC).键值监听(KVO)特性: 键值编码KVC 键值监听KVO 键值编码KVC 我们知道在C#中可以通过反射读写一个对象的属性,有时候这种方式特别方便,因为你可以利用字符串的方式去动态控制一个对象.其实由于ObjC的语言特性,你根部不必进行任何操作就可以进行属性的动态读写,这种方式就是Key Value Codin…