首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KVC兼容a类

KVC兼容a类
EN

Stack Overflow用户
提问于 2013-01-20 15:33:43
回答 1查看 898关注 0票数 1

读取符合iOS文档的KVC。我试过考试一堂课。KVC类兼容吗?

但我有一些问题:

  1. 没有设置属性"Name“、"Age”的设置程序,而且该类仍然没有错误地使用KVC,也不会触发任何异常。
  2. 当没有为属性创建设置程序时,编译器会做什么?它是否创造了一对策划人和getter? Person.h @interface : NSObject { NSString *name;NSInteger年龄;} Person.m @implementation (id)init { self = super;if (self) { name = @"Duc Nguyen";年龄= 10;}返回self;} ViewController.m
  • (IBAction)showKeyKVC:(Id)发件人{//-测试kvc名称1.test= person valueForKey:@“showKeyKVC”;showKeyKVC= [NSString stringWithFormat:@"%@",person valueForKey:@"age"];

当我按下按钮时,结果是:年龄: 10岁,姓名: Duc Nguyen。我不明白这门课怎么会在这种情况下使用KVC?

EN

回答 1

Stack Overflow用户

发布于 2013-07-06 06:33:05

答案在简单属性的访问器搜索模式 KVC指南中。

对setValue的默认搜索模式:forKey: 当对属性调用setValue:forKey:的默认实现时,将使用以下搜索模式:

  1. 将搜索接收方类的访问器方法,该方法的名称与模式set<Key>:匹配。
  2. 如果没有找到访问器,并且接收器的类方法accessInstanceVariablesDirectly返回YES,则将按顺序搜索一个实例变量,其名称与模式_<key>_is<Key><key>is<Key>匹配。

默认的实现是将YES返回到accessInstanceVariablesDirectly方法,因此KVC机制实际上是从nameage实例变量中获取值。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14426084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档