键值编码(KVC)KEY VALUE CODING

原创 2015年07月08日 19:53:08

1.setValue: forKey:

将person对象中的name属性作为Key值,并将这个Key对应的value设为张三,建立一个键值对

//方法声明:
- (void)setValue:(id)value
          forKey:(NSString *)key
//参数说明:
//由Key标识的属性的值
value:The value for the property identified by key.
key:The name of one of the receiver's properties.
//将person对象中的name属性作为Key值,并将这个Key对应的value设为张三,建立一个键值对
[person setValue:@"张三" forKey:@"name"];

2.valueForKey:

返回调用该方法对象属性的value

//方法声明:
- (id)valueForKey:(NSString *)key
//返回值说明:
//返回调用该方法对象属性的值
NSLog(@"%@", [person valueForKey:@"name"]);

3.setValuesAndKeysForDictionary:

字典中的Key为对象的属性名,value为将要赋的值,组成键值对,并为对象属性赋值

//方法声明:
- (void)setValuesForKeysWithDictionary:(NSDictionary *)keyedValues
//参数说明:
keyedValues:字典识别用Key标识的属性,通过Key找到相应的属性并将属性赋值
NSDictionary *dictionary = @{@"name" : @"ZSY", @"gender" : @"man", @"age" : @"18", @"hobby" : @"play"};
//在person对象中,通过字典中的Key对应属性名字,将Key对应的属性值赋值为value
[person setValuesForKeysWithDictionary:dictionary];
//注意:如果字典中的Key值多于对象中的属性时,需要重写下面的方法,保证系统正确运行,否则程序crash
- (void)setValue:(id)value forUndefinedKey:(NSString *)key {
}

4.setValue: forKeyPath:

通过路径将属性名(Key)对应值(value)组成键值对,并对属性赋值操作

//方法的声明:
- (void)setValue:(id)value
      forKeyPath:(NSString *)keyPath
//参数说明:
keyPath:要使用Key标记的属性的路径

//Person.h中声明一个Cup对象的属性
@property (nonatomic, retain) Cup *cup;
//Person.m中实现对Cup对象的指定初始化方法
- (instancetype)initWithCup:(Cup *)cup {
    self = [super init];
    if (self) {
        _cup = cup;
    }
    return self;
}
//Cup.h中声明属性capacity
@property (nonatomic, assign) NSInteger capacity; 
//1.实例化Cup对象
Cup *cup = [[Cup alloc] init];
//2.实例化Person对象并且使用初始化方法,为cup属性初始化
Person *person2 = [[Person alloc] initWithCup:cup];
//3.将person对象的cup属性中的capacity属性value值设置为550
[person2 setValue:@550 forKeyPath:@"cup.capacity"];
//4.输出capacity
NSLog(@"%lu", person2.cup.capacity);
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【IOS】KVC(Key - value coding 机制) & KVO(键值观察)

键值观察:值更改时通知观察者 键值观察(Key-value observing,或简称 KVO)允许对象观察另一个对象的属性。该属性值改变时,会通知观察对象。它了解新值以及旧值;如果观察的属性为...

Objective-C ---强大的KVC(key valued coding 键值编码) 详解

以前KVC只是简单会用,但不了解KVC的真正强大,突然觉得,现在能在功能上都实现,但却不懂一些机制的特性,从此我在慢慢捡回来,发现了解一些原理还是蛮有趣的。今天学习下KVC机制。一、简介 K...

KVC基础(Key-Value Coding Fundamentals)

KVC基础 本文描述KVC的基本原则。 Key和key路径 Key是用来标示对象特定属性的字符串。通常,一个key对应一个访问器方法或接收对象的实例变量。Key必须使用ASCII编码,以小写字母...

KVC编程指南(Key-Value Coding Programming Guide)

概述 重要:这只是开发中API或技术的一个初步文档。苹果提供这些信息来帮助你在苹果产品上采用这些技术和编程界面。这些信息可能发生变化,根据这个文档实现的软件必须在最终的操作系统软件和最终的文档上测试。...

iOS 【IOS中Key-Value Coding (KVC)的使用详解】

KVC,键值编码,是一个非正式的协议,它提供一种机制来间接访问对象的属性。直接访问对象是通过调用访问器的方法实现,而kvc不需要调用访问器的设置和获取方法,可以直接访问对象的属性。   下面介绍一下...

KVC(key value coding)的使用

除了一般的赋值和取值的方法,我们还可以用Key-Value-Coding(KVC)键值编码来访问你要存取的类的属性。 下图来自苹果官网: 如何使用KVC存取对象属性呢?...

Key–Value Coding (KVC 目前看到的最好的解释版本)

Cocoa derives the name of an accessor from a string name at runtime through a mechanism called key–v...

KVC (Key -Value Coding)

参考文档: 《Cocoa Programming for Mac OS X 4》 键-值编码(Key-Value Coding,KVC)是通过变量名读取和设置变量值的一种机制,变量的...

KVC键值编码

  • 2016-08-25 20:02
  • 83KB
  • 下载

Key Value Coding && key Value Observing KVC KVO

Key Value Coding Key Value Coding是cocoa的一个标准组成部分,它能让我们可以通过name(key)的方式访问property, 不必调用明确的property...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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