OC入门-KVC

KVC (Key Value Coding) Objective-C 允许以字符串形式间接操作对象的属性,这种方式的全称是 Key Value Coding (简称KVC),即键值编码。
最基本的 KVC 由 NSKeyValueCoding 协议提供支持,最基本的操作属性的两个方法如下:

  • setValue:属性值 forKey:属性名 >> 为指定属性设置值

  • valueForKey:属性名 >> 获取制定属性的纸

  • HDPerson.h

#import <Foundation/Foundation.h>

@interface HDPerson : NSObject

//  使用@property定义3个property
@property (nonatomic, copy) NSString * name;
@property (nonatomic, copy) NSString * pass;
@property (nonatomic, copy) NSDate * birth;

@end

  • main.m
#import <Foundation/Foundation.h>
#import "HDPerson.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //创建HDPerson对象
        HDPerson * person = [[HDPerson alloc] init];
        
        //使用KVC方式为name属性设置属性值
        [person setValue:@"黑点" forKey:@"name"];
        
        //使用KVC方式为pass属性设置属性值
        [person setValue:@"1233" forKey:@"pass"];

        //使用KVC方式为name属性设置属性值
        [person setValue:[[NSDate alloc] init] forKey:@"birth"];
        
        //使用KVC获取HDPerson对象的属性
        NSLog(@"person 的 name 为: %@",[person valueForKey:@"name"]);
        NSLog(@"person 的 pass 为: %@",[person valueForKey:@"pass"]);
        NSLog(@"person 的 birth 为: %@",[person valueForKey:@"birth"]);
        
    }
    return 0;
}

2016-10-25 17:31:39.124 OC_KVC[31849:1185578] person 的 name 为: 黑点
2016-10-25 17:31:39.125 OC_KVC[31849:1185578] person 的 pass 为: 1233
2016-10-25 17:31:39.135 OC_KVC[31849:1185578] person 的 birth 为: 2016-10-25 09:31:39 +0000

点击下载GitHub源码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • KVC(Key-value coding)键值编码,单看这个名字可能不太好理解。其实翻译一下就很简单了,就是指iO...
    朽木自雕也阅读 1,621评论 6 1
  • KVC(Key-value coding)键值编码,单看这个名字可能不太好理解。其实翻译一下就很简单了,就是指iO...
    黑暗中的孤影阅读 50,104评论 74 441
  • KVC简单介绍 KVC(Key-value coding)键值编码,就是指iOS的开发中,可以允许开发者通过Key...
    公子无礼阅读 1,471评论 0 6
  • KVC(Key-value coding)键值编码,iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,...
    CALayer_Sai阅读 2,583评论 0 4
  • 简介 KVC(Key-value coding)键值编码,翻译一下就是指iOS的开发中,可以允许开发者通过Key名...
    6ffd6634d577阅读 1,371评论 1 9