kvc kvo

原创 2015年07月09日 18:14:00
Key-Value Coding (KVC)

KVC,即是指 NSKeyValueCoding,一个非正式的 Protocol,提供一种机制来间接访问对象的属性。KVO 就是基于 KVC 实现的关键技术之一。

一个对象拥有某些属性。比如说,一个 Person 对象有一个 name 和一个 address 属性。以 KVC 说法,Person 对象分别有一个 value 对应他的 name 和 address 的 key。 key 只是一个字符串,它对应的值可以是任意类型的对象。从最基础的层次上看,KVC 有两个方法:一个是设置 key 的值,另一个是获取 key 的值。如下面的例子:
?
1
2
3
4
5
6
7
8
9
10
11
12

void changeName(Person *p, NSString *newName)
{

    // using the KVC accessor (getter) method
    NSString *originalName = [p valueForKey:@"name"];

    // using the KVC  accessor (setter) method.
    [p setValue:newName forKey:@"name"];

    NSLog(@"Changed %@'s name to: %@", originalName, newName);

}

现在,如果 Person 有另外一个 key 配偶(spouse),spouse 的 key 值是另一个 Person 对象,用 KVC 可以这样写:

?
1
2
3
4
5
6
7
8
9
10
11
12
13

void logMarriage(Person *p)
{

    // just using the accessor again, same as example above
    NSString *personsName = [p valueForKey:@"name"];

    // this line is different, because it is using
    // a "key path" instead of a normal "key"
    NSString *spousesName = [p valueForKeyPath:@"spouse.name"];

    NSLog(@"%@ is happily married to %@", personsName, spousesName);

}

key 与 key pat 要区分开来,key 可以从一个对象中获取值,而 key path 可以将多个 key 用点号 “.” 分割连接起来,比如:
[p valueForKeyPath:@"spouse.name"];

相当于这样……
[[p valueForKey:@"spouse"] valueForKey:@"name"];

好了,以上是 KVC 的基本知识,接着看看 KVO。

KVC,KVO机制

  • 2015年10月27日 09:05
  • 34KB
  • 下载

MAC下KVO,KVC的小demo

  • 2015年06月23日 18:32
  • 48KB
  • 下载

IOS KVC和KVO的用法及规则

概述 由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby、Python的动态特性,例如动态类型、动态加载、动态绑定等。今天我们着重介绍ObjC中的键值编码(KVC)、键值...

kvo-kvc介绍

  • 2015年11月04日 10:13
  • 64KB
  • 下载

ios之KVC机制的使用/ KVO机制使用的概述

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

oc中kvc与kvo代码

  • 2015年01月22日 10:25
  • 39KB
  • 下载

iOS开发之KVO与KVC解析与实战

一、NSKeyValueCoding(KVC) 1.原理  运用了一个isa-swizzling技术。isa-swizzling就是类型混合指针机制。KVC主要通过isa-swizzling,来实...
  • hmh007
  • hmh007
  • 2017年03月13日 10:54
  • 175

KVC-KVO原理详解及编程指南

  • 2014年11月26日 17:41
  • 149KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:kvc kvo
举报原因:
原因补充:

(最多只允许输入30个字)