原文:http://blog.csdn.net/developer_zhang/article/details/12840567
1 前言
本节我们主要介绍键值编码,以及如何使一个类符合KVC编码。
2 详述
键-值编码是一个对于间接访问一个对象属性和关系使用字符标识的机制。它支持或者关系几个特别的Cocoa编程机制和技术,在Core Data,application scriptability,绑定技术(application scriptability和绑定技术特属于OS X)和声明属性的语言特性中。我们也能够使用键值编码简化我们的程序代码。
2.1 对象属性和KVC
对于key-value编码(或者KVC)的核心是属性的普通概念。一个涉及将对象压入状态单元的属性。一个属性能够成为两种普通类型的一种:一个属性(例如:name,title)或者一个与其他对象的关系。关系可以是对一的或者是对多的。对多关系的值的典型代表为数组(array)或者集合(set),依赖于是否关系是有序的或者无序的。
KVC通过一个字符串标示的key来定位一个对象属性。key通常符合被对象所定义的存储方法的名称或者实例变量。key必须符合固定的惯例:必须为ASCII编码,开始以小写字母,没有空格。key path是一个字符串被点分割的字符串keys被用于简化对象属性的序列的遍历。属性的序列的first key关联了一个简单的对象(employee1在下面的图形中),随后的key是关联的前面的值的属性。
2.2 使一个类符合KVC编码
NSKeyValueCoding非正式协议使KVC称为可能。它的两个方法-valueForKey:和setValue:forKey:-是特别重要的因为他们当提供key的时候会获得和设置一个属性值。NSObject提供了一个默认的这些方法的实现,并且当一个类服从了键值编码,它能够依赖于这一实现
我们如何能使得一个属性符合KVC编码依赖于是否这些属性是对象的属性,对一关系,或者对多的关系。对于这些属性和关系,一个类必须符合至少以下的一条(key相当于property key):
(1)使用名字key,类有一个声明属性;
(2)它实现了存储方法称为key并且,如果属性可变,setKey:(如果属性是一个Boolean属性,getter存储方法拥有isKey的格式);
(3)它声明了以key或者_key的形式的一个实例变量。
对于一对多关系实现KVC格式是更复杂的步骤。
3 结语
以上是所有内容,希望对大家有所帮助。
相关推荐
### IOS中Key-Value Coding (KVC)的使用详解 #### 一、KVC简介 Key-Value Coding(简称KVC)是Objective-C框架提供的一个非常实用的功能,它允许我们以键值对的形式来访问对象的属性。通常情况下,我们通过调用...
### 解锁Objective-C的KVC:深入Key-Value Coding的奥妙 Objective-C是一种功能强大且灵活的面向对象编程语言,它在C语言基础上增加了面向对象的特性。自1980年代由Brad Cox和Tom Love设计以来,Objective-C经过...
在iOS开发中,Key-Value Coding (KVC) 和 Key-Value Observing (KVO) 是两种非常重要的机制,它们都是Objective-C中的特性,用于对象属性的动态访问和观察。KVC提供了一种间接访问对象属性的方式,而KVO则允许我们...
4. Key-Value Coding (KVC):Core Animation通过KVC来观察和修改图层属性,这是实现动画的关键。 三、动画类型 1. Basic Animations:基本动画是最简单的动画形式,用于改变图层的一个或多个属性,如位置、大小、...
- KVC(Key-Value Coding)与KVO(Key-Value Observing):属性存取的动态方式,以及观察对象属性变化。 2. **C++基础** - 类和对象:理解封装、继承、多态等面向对象特性。 - 动态内存管理:指针操作,new/...
Objective-C是iOS开发中的主要编程语言,而KVC(Key-Value Coding)、KVO(Key-Value Observing)以及谓词(Predicates)和通知(Notifications)是Objective-C中非常重要的概念,它们提供了灵活的数据访问和对象间...
在故事板中进行属性传值通常有两种主要方法:代理模式(Delegate)和键值编码(Key-Value Coding,KVC)。然而,本话题聚焦于`UIStoryboardSegue`,这是一种更直接的方式。 1. **定义UIStoryboardSegue标识符**:在...
一个更常用的方法是使用KVC(Key-Value Coding)和字典的`setValue:forKey:`方法。首先,创建一个简单的模型类,比如`Person`: ```objc @interface Person : NSObject @property (nonatomic, strong) NSString *...
例如,GET请求的参数可以通过KVC(Key-Value Coding)的方式绑定到`NSMutableURLRequest`对象中,这样参数就能被自动添加到URL的查询字符串中。同时,AFNetworking会监听`NSMutableURLRequest`的一些关键属性变化,...
9. **KVC(Key-Value Coding)与KVO(Key-Value Observing)**:KVC提供了一种间接访问对象属性的方式,而KVO允许观察并响应对象属性的变化。 10. **GCD(Grand Central Dispatch)**:苹果的并发处理技术,用于...
针对题目中的"ios-传值集合.zip"压缩包,我们可以详细探讨一下其中提及的七大传值方式:代理(Delegate)、单例(Singleton)、属性(Property)、通知(Notification)、Block、Key-Value Coding(KVC)和Key-Value...
在iOS开发中,Key-Value Coding (KVC) 和 Key-Value Observing (KVO) 是两种强大的数据绑定技术,它们极大地简化了对象属性的访问和变化监听。本项目"KVCAndKVOProject(监听)"提供了一个具体的实例,帮助开发者...
5. **KVC(Key-Value Coding)**:KVC是一种间接访问对象属性的技术,允许通过字符串键来动态设置和获取值,常用于数据绑定和序列化。 6. **KVO(Key-Value Observing)**:KVO是Objective-C中的一个机制,可以监听...
7. KVC(Key-Value Coding)和KVO(Key-Value Observing):可能用于监听数据模型的变化并更新UI。 8. MVC(Model-View-Controller)设计模式:理解如何将数据、视图和控制分离,以提高代码的可维护性。 总之,这个...
7. **KVC(Key-Value Coding)**:在iOS中,Key-Value Coding可以用来动态地改变对象的属性值,如UILabel的`text`属性,这在实现动画时非常方便。 8. **代码可读性和维护性**:尽管描述中提到代码量较少,但为了...
Explore Cocoa’s use of Objective-C linguistic features, Use Cocoa’s event-driven model and major design patterns, Learn the role of accessors, key-value coding, and properties, Understand the power...
此外,文档可能还会讲解核心概念,如Delegation、Notification和KVC(Key-Value Coding),这些都是iOS开发中的重要机制。 "iOS学习笔记 - Hello Word_Java_技术方案_中国软件网.mht"这个文件名称表明,这是一份...
4. Key-Value Coding (KVC)与Key-Frame Animation 在该项目中,可能使用了Key-Value Coding来动态修改图层属性,实现动画效果。Key-Frame Animation则允许开发者定义动画过程中多个关键帧的状态,从而创建平滑过渡的...
Pick up iOS 7 Programming Fundamentals to learn about Objective-C, Xcode, and Cocoa language features such as notifications, delegation, memory management, and key-value coding. Together with ...
**iOS KVC(Key-Value Coding)与KVO(Key-Value Observing)详解** KVC和KVO是Objective-C及Swift中用于对象属性间接访问和观察的重要技术,它们为开发者提供了灵活的数据绑定和动态属性更新机制。在iOS开发中,...