美文网首页
Key-value coding

Key-value coding

作者: Yuann | 来源:发表于2021-10-09 14:05 被阅读0次

键值编码是一种使用字符串标识符间接访问对象属性和关系的机制。它支持或与Cocoa编程特有的几种机制和技术相关,其中包括核心数据、应用程序脚本能力、绑定技术和声明属性的语言特性。(OSX上的Cocoa特定于脚本能力和绑定。)您还可以使用键值编码来简化程序代码。

对象属性和KVC

键值编码(或KVC)的核心是属性的一般概念。属性是指对象封装的状态单位。属性可以是两种常规类型之一:属性(例如,名称、标题、小计或textColor)或与其他对象的关系。关系可以是一对一,也可以是多对多。多对多关系的值通常是数组或集合,具体取决于关系是有序的还是无序的。
KVC通过键(字符串标识符)定位对象的属性。键通常对应于对象定义的访问器方法或实例变量的名称。密钥必须符合某些约定:它必须是ASCII编码的,以小写字母开头,并且没有空格。关键点路径是一组点分隔的关键点,用于指定要遍历的对象特性序列。序列中第一个键的属性是相对于特定对象(下图中的employee1)的,随后的每个键都是相对于前一个属性的值进行计算的。


Snip20211009_17.png

使类KVC兼容

NSKeyValueCoding非正式协议使KVC成为可能。它的两个方法valueForKey:和setValue:forKey:-特别重要,因为它们在给定属性的键时获取和设置属性的值。NSObject提供了这些方法的默认实现,如果类符合键值编码,则它可以依赖于此实现。
如何使属性KVC兼容取决于该属性是属性、对一关系还是对多关系。对于属性和一对一关系,类必须按照给定的优先顺序实现以下至少一项(键指属性键):

  • 该类有一个已声明的属性,该属性的名称为key。
  • 它实现名为key的访问器方法,如果属性是可变的,则实现setKey:。(如果属性是布尔属性,则getter访问器方法的形式为isKey。)
  • 它声明表单键或_键的实例变量。

为多对多关系实现KVC遵从性是一个更复杂的过程。

相关文章

  • KVC&KVO

    一.KVC 1.KVC即Key-value coding Key-value coding is a mechan...

  • iOS - 探索KVC及其原理

    KVC 全名:Key-value coding,中文简直编码。苹果对其定义如下: Key-value coding...

  • key-value coding

    About key-value coding(关于KVC) 关键值编码是一种机制,使非正式协议NSKeyValue...

  • Key-Value Coding

    Key-value coding is an easy-to-use tool for us in our pro...

  • Key-value coding

    键值编码是一种使用字符串标识符间接访问对象属性和关系的机制。它支持或与Cocoa编程特有的几种机制和技术相关,其中...

  • NSKey​Value​Coding

    官方文档点这里:NSKey​Value​Coding、Key-Value Coding Programming G...

  • KVC 和 KVO

    简介 KVC 英文 (Key-Value Coding) 和 (Key-Value Observing) 是 O...

  • KVC和KVO总结

    概念 先来看看概念,Key-value coding (KVC) 和 key-value observing (K...

  • 更好更便捷的使用KVO。

    Key-value coding (KVC) 和 key-value observing (KVO) 是两种能让我...

  • KVO和KVC

    Key-value coding (KVC) 和 key-value observing (KVO) 是两种能让我...

网友评论

      本文标题:Key-value coding

      本文链接:https://www.haomeiwen.com/subject/ivsqoltx.html