`
sunqichao
  • 浏览: 27451 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

IOS 学习 Key-value coding

    博客分类:
  • IOS
阅读更多

原文: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)的使用详解(烟台杰瑞教育IOS培训部原创).docx编程资料

    IOS中Key-Value Coding (KVC)的使用详解(烟台杰瑞教育IOS培训部原创).docx编程资料

    iOS 7 Programming Fundamentals

    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...

    iOS KVC设计模式

    KVC(Key-Value Coding)是Objective-C中最强大最实用的功能之一。 通过例子可以帮你更好的理解它们。

    [iOS] iOS 7 编程 (英文版)

    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 ...

    Objective-C Programming: The Big Nerd Ranch Guide (2nd Edition)

    - Properties and Key-Value Coding (KVC) - Class extensions - Categories - Classes from the Foundation framework - Blocks - Delegation, target-action, and notification design patterns - Key-Value...

    iOS 7 Programming Fundamentals: Objective-C, Xcode, and Cocoa Basics

    iOS 7 Programming Fundamentals: ...Learn the role of accessors, key-value coding, and properties Understand the power of ARC-based object memory management Send messages and data between Cocoa objects

    iOS 核心动画编程

    你还应该熟悉键-值编程方法(参考文档 Key-Value Coding Programming Guide)。同时如果你对Quartz2D编程有一定了解的话,将会对您掌握 本文档带来帮助,但这不是必须的(参考文档 Quartz 2D Programming Guide)。 您...

    核心动画高级技巧

    你还应该熟悉键-值编程方法(参考文档 Key-Value Coding Programming Guide)。同时如果你对Quartz2D编程有一定了解的话,将会对您掌握 本文档带来帮助,但这不是必须的(参考文档 Quartz 2D Programming Guide)

    核心动画编程指南

    你还应该熟悉键-值编程方法(参考文档 Key-Value Coding Programming Guide)。同时如果你对Quartz2D编程有一定了解的话,将会对您掌握 本文档带来帮助,但这不是必须的(参考文档 Quartz 2D Programming Guide)。

    java餐饮小程序源码-iOSObserving:iOS观察者模式

    KVC全称Key-value coding. 一个非正式的Protocol,提供一种机制来间接访问对象的属性. 官方文档提供对KVC很准确的描述 Key-value coding is a mechanism for accessing an object’s properties indirectly, using ...

    ios-KVC和KVO学习笔记.zip

    但需要注意的是,键值观察(KVO)是建立在键值编码(Key Value Coding,简称KVC)的基础上,也就是说任何你想使用KVO观察的属性必须符合键值编码。 这个demo主要以字符串、数组为例来学习键值编码和键值观察。 ...

    Learn Objective-C on the Mac

    Learn to write apps for some of today's hottest technologies, including the iPhone and iPad (using iOS),...Key-Value Coding * Using the Static Analyzer * NSPredicate Appendix: Coming from Other Languages

    Programming iOS 11_Dive Deep into Views,Controllers, and Frameworks 2018.pdf

    and architectures of the Cocoa Touch framework (including delegation, the responder chain, key–value coding, key–value observing, memory management, and so on), has been relegated to iOS 11 ...

    iOS-KVC的实现

    KVC全称是Key Value Coding(键值编码),是一个基于NSKeyValueCoding非正式协议实现的机制,它可以直接通过key值对对象的属性进行存取操作,而不需通过调用明确的存取方法。这样就可以在运行时动态在访问和修改对象...

    Objective-C:iOS原生开发语言Objective-C。从0到1开始的demos

    reason: '[<ViewController> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key label1.' 多余的连线没有删除(创建了多余的IBOutlet) 5.9 UILabel和UIImageView: UIKit中的...

    IOS 中KVC的使用方法实例详解

    KVC是Key Value Coding的缩写,意思是键值编码。在iOS中,提供了一种方法通过使用属性的名称(也就是Key)来间接访问对象的属性方法。说的有的拗口,实际上就是通过类定义我们可以看到类的各种属性,那么使用属性的...

Global site tag (gtag.js) - Google Analytics