如果我们的对象需要使用KVC,必须符合object-c的非正式协议NSKeyValueCoding.我们可以简单的来理解KVC,即所有符合KVC机制的对象都看成一个字典(NSDictionary),对象里面的成员量都是以键值配对的形式存放的,当我们需要为对象存值时,使用“setValue: froKey:”的方法;而当取对象时,使用valueForKey:的方法。

对于对象中成员量的键值配对,所谓的“键”其实是NSString类型的字符串,他们所对应的值也都是一个id类型的对象。

定义一个足球运动员类

@interface footballer : NSObject

@property (nonatomic,retain) NSString *name;
//@property (nonatomic,retain) NSMutableArray *members;
@end @implementation footballer
@synthesize name;
//@synthesize members;

注:程序中通过@synthesize指令告诉编译器在编译期间产生getter /setter方法

对于足球运动员的对象,我们如果要知道他的名字,就可以将name作为键来取值,代码如下:

   footballer *aPlayer=[[footballer alloc]init];
aPlayer.name=@"Rual";
//footballer *bPlayer=[[footballer alloc]init];
//[bplayer.members addObject:aPlayer.name];
NSLog(@"name: %@",[aPlayer valueForKey:@"name"]);

最新文章

  1. Integer.parseInt 引发的血案
  2. python多线程ssh爆破
  3. Java构建
  4. HTML框架与布局
  5. [shell基础]——I/O重定向
  6. IT项目管理的六种错误思维
  7. jcarousellite 实现图片列表滚动
  8. ajax验证用户名和密码
  9. POJ 3342 Party at Hali-Bula / HDU 2412 Party at Hali-Bula / UVAlive 3794 Party at Hali-Bula / UVA 1220 Party at Hali-Bula(树型动态规划)
  10. C++ Random 的使用
  11. jQuery循环
  12. python, ImageFont
  13. Linux 下 rt3070 无线网卡找不到 firmware 问题
  14. cordova 插件 调用iOS社交化分享(ShareSDK:微信QQ分享)
  15. JavaScript 入门笔记
  16. zookeeper 启动显示started,jps查看进程却没有,解决方法
  17. 【CF884D】Boxes And Balls 哈夫曼树
  18. 139. Word Break (String; DP)
  19. Hadoop HBase概念学习系列之HBase里的宽表设计概念(表设计)(二十七)
  20. c#打印(转)

热门文章

  1. hdu 2850 Load Balancing (优先队列 + 贪心)
  2. Linux前台的程序转到后台执行(关闭终端而不杀死命令)
  3. [原创] 小而美 | Mac上鲜为人知,但极大提升效率的小工具
  4. 原生js判断某个元素是否有指定的class名的几种方法
  5. ROS验证publisher和subscriber
  6. memcached look status
  7. Hadoop学习之自定义二次排序
  8. Java 内省机制
  9. 对discuz的代码分析学习(三)mysql驱动
  10. character-RNN模型介绍以及代码解析