当前位置: 首页 > news >正文

保定市城市规划建设局网站百度推广助手app

保定市城市规划建设局网站,百度推广助手app,淘宝客网站程序购米,天津做美缝的网站在刚刚学习KVC时,我感觉这个东西非常奇怪:它完全可以用"."操作符替代,而且"."更加简单方便。为什么还会有这样一个东西呢? 说起来,KVC的作用还真不大,但在特定的情境下,它…

在刚刚学习KVC时,我感觉这个东西非常奇怪:它完全可以用"."操作符替代,而且"."更加简单方便。为什么还会有这样一个东西呢?

说起来,KVC的作用还真不大,但在特定的情境下,它还是有一些用处的,我现在发现它的用处主要有两个方面。

一,它可以动态地访问特性。

这句话不好理解,举个例子吧。现在有许多字母,我们要统计某个字母有没有出现。这些字母被存储在一个NSArray里,遍历Array,当遇到"a"这个字母时,就将一个名为"a"的属性设为@"yes",即:

if(letter isEqualToString:@"a")self.a=@"yes";
if(letter isEqualToString:@"b")self.b=@"yes";
...
这种方式实在比较蛋疼,代码质量比较差劲。如果用了KVC的方式,就比较好看了。

[self setValue:@"yes" forKey:s];
这样,就能动态地处理数据了。

二,它可以支持KVO,即Key-Value Observation,即监视属性的变化并进行一些操作。

使用过UITableView的人一定知道,当对TableView的数据源进行修改时,比如增加一条数据,需要刷新TableView。如果在许多地方进行修改,则需要不断刷新,实在是比较麻烦。

我们可以使用KVO的方法,在数据源改变之后,自动重新加载TableView。假如一个TableView是从array这个属性中获取并组织数据的,那么我们可以添加一句话:

[self addObserver:self forKeyPath:@"array" options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew context:nil];
然后加入一个方法,用来定义接到变化后处理的方式:

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{if ([keyPath isEqualToString:@"array"]) {[self.tableView reloadData];}
}
这样,系统就能够在self.array发生变化时自动刷新tableView了。

不过使用KVO有一个比较讨厌的地方,当接收者tableView被销毁时,也要同时取消监听:

[self removeObserver:self forKeyPath:@"array"];
如果不这样的话,在array改变时,就会报错。

不过,即使有这样讨厌的地方,KVO仍然不失为一个有用的工具。


总体来看,我觉得KVC的作用仍然不太大,基本上属于食之无味,弃之可惜的鸡肋。

http://www.lbrq.cn/news/2738467.html

相关文章:

  • 邯郸做seo网站优化快排seo
  • 网站要怎么做才专业谷歌关键词推广怎么做
  • 手机企业网站推广seo是啥软件
  • wordpress图纸管理网站自助建站seo
  • 全球网站建设品牌seo成功案例分析
  • b2b平台网站功能如何做百度免费推广
  • 注册网站获取网易邮箱安全码百度招聘官网
  • 鹿泉市建设局网站百度我的订单查询
  • 哪个网站生鲜配送做的好处汕头seo优化
  • 电子商务购物平台seo网站优化建议
  • 怎么用程序做网站竞价排名的服务模式是
  • 网站推广网络营销优化
  • 做门户网站需要什么东莞网站制作推广公司
  • 中小型企业网站优化价格百度竞价优缺点
  • 找做网站公司需要注意什么天津网络推广seo
  • 网站建设实验心得seo网站的优化方案
  • 在线制作图片旋转动态seo个人优化方案案例
  • 深圳网站设计 公司随州网络推广
  • 内容展示类网站怎么优化百度关键词
  • 常州网站建设开发搜索引擎排名原理
  • 网络培训心得体会1000字seo的基本步骤包括哪些
  • 6做网站100个商业经典案例
  • 设计公司网站 唐山b站推广费用一般多少
  • 网站ip做网站西安网站搭建
  • 网站建设盈利企业网站怎么注册官网
  • 美国外贸网站建设百度开户要多少钱
  • 网站建设中html52022社会热点事件及看法
  • 互联网网站建设公司快速收录网
  • 如何把自己做的网站发布到网上千锋教育培训怎么样
  • 河南网站建设公司哪个好呀win10优化大师有用吗
  • 三、memblock 内存分配器
  • GEEPython-demo1:利用Sentinel-2监测北京奥林匹克森林公园2024年NDVI变化(附Python版)
  • 正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
  • OpenCV Python——图像拼接(一)(图像拼接原理、基础知识、单应性矩阵 + 图像变换 + 拼接)
  • c#Blazor WebAssembly在网页中多线程计算1000万次求余
  • 焊接机器人保护气体效率优化