-(void)viewDidLoad{
[super viewDidLoad];
/*
设计模式 – 观察者模式
设计模式是用来解决某一特定问题

观察者模式
什么是观察者模式?
在工程中,一些类去观察‘A’类,当‘A’类发生变化时,这些类就会收到消息,做出相应反应。

什么时候使用观察者模式?
当一个类需要发送消息给多个类的时候,就用观察者模式。

观察者模式的作用?
一对多的消息放送

在OC中如何实现观察者模式?
OC中观察者模式的设计基础 KVC/KVO

KVC (键值编码 Key-Value Coding)
KVC提供了在运行时而非编译时动态访问对象属性与实例变量的方式。

*/


Student *stu1 = [Student new];

[stu1 setValue:@”Leee” forKey:@”_name”];
[stu1 setValue:@25 forKey:@”age”];
[stu1 setValue:@”GZ” forKey:@”_address”];

NSLog(@”%@”,stu1);

//访问

NSString *name = [stu1 valueForKey:@”_name”];
NSNumber *age = [stu1 valueForKey:@”_age”];
NSString *address=[stu1 valueForKey:@”_address”];

//动态访问某些属性时,使用一些可以运行时而不是编译时改变的值

stu1.p1 = 1;
stu1.p2 = 2;
stu1.p3 = 3;
int a= [stu1 getValuePropertyName:@”p1”];
NSLog(@”%d”,a);

int b = [stu1 getNewValuePropertyName:@”p1”];
NSLog(@”%d”,b);

Book *book = [Book new];

// [book setValue:(nullable id) forKey:(non null NSString *)]

//键路径编码
[stu1 setValue:book forKeyPath:@”_book”];
[stu1 setValue:@”少妇白洁” forKeyPath:@”_book.bookName”];
NSString *bookName = [stu1 valueForKeyPath:@”_book.bookName”];
NSLog(@”%@”,bookName);

}

OC_键值编码KVC(Key-Value Coding)相关推荐

  1. Property属性,amp;nbsp;KVC键值编码OC…

    1.属性:帮你自动生成setter 和 getter 方法      属性的声明:(写在.h中)      格式: @property 数据类型 属性名      属性的实现:(写在.m中)      ...

  2. 【字符串】面试题之键值对(”key = valude”)字符串

    题目: 键值对("key = valude")字符串,在开发中经常使用: 要求1:请自己定义一个接口,实现根据key获取valude:40分 要求2:编写测试用例.30分 要求3: ...

  3. Redis 大键值对 Big Key 懒惰删除机制

    一.懒惰删除介绍 在删除元素数量很多的集合(set/hash/list/sortedSet)时,无论是使用DEL命令删除还是redis为了释放内存空间而进行的删除,在删除这些big key的时候,会导 ...

  4. java get key_java如何获取String里面的键值对:key=valuekey=value

    我一个朋友帮我写了一个,分享给大家: package com.qtay.gls.common; import java.util.Arrays; import java.util.HashMap; i ...

  5. java 获取string值_java如何获取String里面的键值对:key=valuekey=value

    我一个朋友帮我写了一个,分享给大家: package com.qtay.gls.common; import java.util.Arrays; import java.util.HashMap; i ...

  6. python取出字典的某个键_python 取出字典的键或者值/如何删除一个字典的键值对/如何遍历字典...

    先定义一个字典并直接进行初始化赋值 my_dict = dict(name="lowman", age=45, money=998, hourse=None) 1.取出该字典所有的 ...

  7. spark编程基础--5.2键值对RDD

    键值对RDD的创建 常用的键值对转换操作 reduceByKey(func) groupByKey() keys values sortByKey() mapValues(func) join com ...

  8. fastjson查找指定键值_分布式键值存储 etcd

    引言 前面的文章中,介绍了基于Paxos的ZooKeeper,本文将介绍另一种分布式一致性算法Raft的工业级实现----etcd,它们虽然实现方案不同,但是最终的实现效果都很像,而且etcd相较于Z ...

  9. React学习(3)——列表、键值与表单

    为什么80%的码农都做不了架构师?>>>    本文记录了在官网学习如何使用JSX+ES6开发React的过程. . 全文共分为3篇内容: JSX语法与React组件 状态.事件与动 ...

  10. Redis中通过bat获取指定前缀开头的所有键值对并输出保存到文件中

    场景 需求是查看某一个服务器上的redis的某命名空间(指定前缀开头)的所有键值对的 key和value的数据格式,但是这个服务器上没法连接外网,只能在redis服务端所在 目录下通过bat脚本获取所 ...

最新文章

  1. 【Python】调用百度云API人脸搜索服务 Face Search
  2. 八、“看夕阳西下,烂漫秋霞”
  3. 处女座男生颜值测试软件,颜值在线又绅士的星座男(图)
  4. Codeforces Round #592 (Div. 2) G. Running in Pairs 构造(水)
  5. php 内容编码错误,PHP输出缓冲,ob_gzhandler引起的内容编码错误?
  6. ORM组件XCode(十八般武艺)
  7. Ansroid系统(262)---MTK安卓sim卡相关源码分析
  8. 简单手绘背景绘画过程-------树!
  9. SpringBoot的jar传递参数时,使用两个「--」横线来标记参数
  10. python基础语法加爬虫精进_从Python安装到语法基础,这才是初学者都能懂的爬虫教程...
  11. resiprocate 之repro使用
  12. 从零实现深度学习框架——计算图运算补充
  13. 【版本控制】如何从github 上获取源码
  14. 45、我的C#学习笔记11
  15. 腾讯云 短信验证码 php,php腾讯云短信验证码
  16. python 登录人人网爬取源码
  17. 并查集-A Bug's Life(poj2492)
  18. redis哨兵集群、docker入门
  19. 逆天了!全地形、四舵轮、八连杆、独立悬挂的机器人运动结构方案,来了!
  20. NYOJ_1248_海岛争霸【最短路】

热门文章

  1. 利用 USB转485通过Wireshark抓取MSTP数据
  2. 阿里、美团内部大数据资料!果然牛逼!
  3. 单片机常用的14个C语言算法,看过的都成了大神!
  4. dz中footer.php在哪找,去掉DZ顶部标题,美化底部左下方版权,详细教程
  5. Altium和 Cadence Allegro 画的PCB导入Slwave
  6. 面试题-mysql优化
  7. 官方代码 Deeplab v3+ resnet101 做backbone
  8. 八大排序算法详解(通俗易懂)
  9. 18个Python爬虫实战案例
  10. Java之棋牌游戏——编写一个斗地主洗牌发牌的程序,要求按照斗地主的规则完成洗牌发牌的过程