![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
【 KVO/KVC】
文章平均质量分 61
KVO/KVC
洋洋dev
别在机场等一艘船
展开
-
KVC/KVO入门
导语 KVC/KVO 在iOS设计模式中具有很重要的地位,在平常的优化代码,面试问答等经常会用到,甚至很多高级的iOS开发技巧都是基于KVC实现的,因此,想提高自己的开发能力,不能仅限于掌握一些KVC/KVO 的基础用法,必须对期底层原理知其所以然,逐步的推敲和掌握 ,应用到自己的代码中。目前网上关于KVC/KVO的文章在非常多,小编打算站在巨人的肩膀上,加上自己的一些开发经验和理解,遵循由浅到原创 2016-10-28 15:19:14 · 773 阅读 · 0 评论 -
KVC/KVO 进阶(一) 底层原理
导语 上篇文章介绍了一些KVC/KVO的简单用法,本篇介绍一下KVC/KVO的底层原理。创建 person 和 car 类person.h@class Car;@interface Persion : NSObject{ NSString *_adress;}@property (nonatomic, strong) NSString *name;@property (non原创 2016-10-27 15:32:51 · 2283 阅读 · 0 评论 -
KVC/KVO 进阶(二)KVC方法执行顺序
KVC API KVC以非正式协议的方式出现在 Foundation/NSKeyValueCoding KVC方法执行顺序Persion.m#import "Persion.h"@implementation Persion@synthesize name = _name;- (void)setName:(NSString *)name { NSLog(@"%s",__func__)原创 2016-10-27 18:13:30 · 1057 阅读 · 0 评论 -
KVC/KVO 进阶(三)KVC的验证和异常处理
KVC的验证和异常处理一般情况下,我们都可以正确的使用kvc,但遇到一些复杂的情况,我们无法分辨 key 或者 value 是否合法化 比如: 我们给persion 赋予一个height的属性。运行程序,最终crash ,如何规避掉这种crash。 //perion没有 height属性 [persion setValue:@181 forKeyPath:@"height"];输出结果2016原创 2016-10-28 15:59:05 · 1404 阅读 · 0 评论 -
KVC/KVO 进阶(四)KVC是如何处理异常的
前言 上篇文章大致阐述了KVC在key正确情况下的执行过程,这篇来说说key错误时KVC是如何运行的。正文KVC中最常见的异常就是不小心使用了错误的Key,或者在设值中不小心传递了nil的值,KVC中有专门的方法来处理这些异常。 通常在用KVC操作Model时,抛出异常的那两个方法是需要重写的。虽然一般很小出现传递了错误的Key值这种情况,但是如果不小心出现了,直接抛出异常让APP崩溃显然是原创 2016-10-28 16:36:18 · 676 阅读 · 0 评论