使用@property,属性名与实例变量名有时可能不相同,在程序中最好都使用属性操作,这样修改实例变量名时只需要修改实例变量的名称以及@synthesize的名称,在dealloc中这样写self.name = nil;这是最好的写法;
在IOS的开发中,总是关注内存的使用量,不论应用程序运行在何种IOS设备上,出于性能的考虑总是推荐懒加载技术。可以使用代理模式,对开销大的数据实施懒加载,如文件中的大图像文件或者通过低速网络下载大型数据。如果大开销的数据在收到请求之前不需要加载,则可以通过虚拟代理向客户端发送某些轻量的信息。
观察者模式,主要用来降低类之间的耦合性,在Cocoa Touch中两种技术实现了观察者模式:通知和KVO。
通知:使用NSNotification和NSNotificationCenter实现了一对多的发布-订阅模型
KVO键-值观察 键值观察机制由NSObject实现,对象可以通过它得到其他对象特定属性的变更通知
KVC
当通过KVC调用对象时,比如:[self valueForKey:@”someKey”]时,程序会自动试图通过几种不同的方式解析这个调用。首先查找是否带有someKey的这个方法;如果没有找到方法,程序会继续查找对象是否带有someKey这个实例变量;如果还没有找到,程序会继续试图调用 -(id) valueForUndefinedKey:这个方法。如果这个方法还是没有被实现的话,程序会抛出一个NSUndefinedKeyException异常错误。
注:Key-Value Coding查找方法的时候,不仅仅会查找someKey这个方法,还会查找getsomeKey这个方法,前面加一个get,或者_someKey以及_getsomeKey这几种形式。同时,查找实例变量的时候也会不仅仅查找someKey这个变量,也会查找_someKey这个变量是否存在。)
KVO
Key-Value Observing机制的概述
Key-Value Observing (简写为KVO):当指定的对象的属性被修改了,允许对象接受到通知的机制。每次指定的被观察对象的属性被修改的时候,KVO都会自动的去通知相应的观察者。
示例参考:http://blog.csdn.net/yuquan0821/article/details/6646400
官方文档:
- addObserver与removeObserver要一对一对的使用
- 基本应用就是DataModel的数据改变后,通知View修改界面
- addObserver:selfforKeyPath:@"price"options:NSKeyValueObservingOptionNewcontext:@"context221" 其中的option设置的是接收到的change的数据类型,context设置的数据是在regist的时候设置的,之后没有其他作用了(可以用来判断接收到的数据的类型)
相关推荐
KVC && Runtime,修改textField placeholder颜色
关于ios学习中的通知和kvc,kvo案例的整理,基础的oc学习
已经拥有一年经验的你真的了解KVC,KVO吗?也许不!以前我以为自己都有上架项目,这都是太基础的东西,但今天我重新回头看了以前做的笔记,真的是书读百遍,其义自见。
KVC 与 KVO 使用姿势和原理解析
使用KVC对属性赋值 使用KVC对属性取值 KVC对数组取值 KVO是key value observing, 它是一种非常重要的机制,允许监听属性值的变化
KVC、kVO原理详解
iOS中KVC-KVO例子,
自己练习swift时做的KVC和KVO的案例,供初学者使用
相信通过这个工程可以让初学者更好的理解iOS的kvc和kvo模式,如果有需要相关文档的可以留言给我。
这里是我看别人博客写的kvc与kvo,自己写的代码,本来不打算收费,但是找不到免费的按钮在哪,所以就选了最小的资源分数1.
KVC 是基于OCRuntime机制,Runtime机制里面可以通过得到实例变量并且访问其私有的成员变量区;实现keyPath中的访问能力;KVO一种通知发送机制,实现一对多,多对一的映射关系
详细的介绍了KVO与KVC的原理机制,可以有效运用KVO-KVC编程
但需要注意的是,键值观察(KVO)是建立在键值编码(Key Value Coding,简称KVC)的基础上,也就是说任何你想使用KVO观察的属性必须符合键值编码。 这个demo主要以字符串、数组为例来学习键值编码和键值观察。 ...
【Debugging Tips, Searching, Notifications, KVC,KVO】[PDF] [iPhone/iPad/iOS]
本文档主要是针对KVC和KVO的使用方法的一些总结,希望对大家有所帮助。
与博客配套的KVC KVO代码,博客地址http://blog.csdn.net/liuyinghui523/article/details/77885198 简单的总结
代码仅供参考 #import "lgsAppDelegate.h" #import "Student.h" #import "Teacher.h" @implementation lgsAppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:...
KVC_KVOTest Demo代码 KVC KVO IOS 观察者 Observe
KVO_App iOS Objective-C中KVC和KVO的基本实现
主要介绍了iOS 中KVC、KVO、NSNotification、delegate 总结及区别的相关资料,需要的朋友可以参考下