1、类属性设置与创建

  • 详细使用介绍
  • KVO 键值观察
// KvoClass.h
@interface KvoClass : NSObject
@property(nonatomic, copy) NSString *name;
@end// ViewController.m
@property(nonatomic, retain) KvoClass *kvoObject;
_kvoObject = [[KvoClass alloc] init];

2、KVO 添加

// 添加观察者
[_kvoObject addObserver:selfforKeyPath:@"name"options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOldcontext:@"nameChange"];
// 改变被观察的键对应的值
_kvoObject.name = @"xiao bai";
sleep(2);
_kvoObject.name = @"xiao hei";

3、KVO 回调

// 系统自带方法
- (void)observeValueForKeyPath:(NSString *)keyPathofObject:(id)objectchange:(NSDictionary *)changecontext:(void *)context {if (context == @"nameChange") {NSLog(@"name 值被改变 kind = %@, oldValue = %@, newValue = %@",change[@"kind"], change[@"old"], change[@"new"]);} else {[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];}
}

4、KVO 移除

  • 在实际工作中需要在合适的时候移除观察者身份。
- (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath context:(nullable void *)context;
- (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath;- (void)dealloc {// 移除观察者[_kvoObject removeObserver:self forKeyPath:@"name" context:@"nameChange"];
}

转载于:https://www.cnblogs.com/CH520/p/9962830.html

KVO 的代码简洁使用相关推荐

  1. [简单题]换一个思维,代码简洁度就完全变了(Python实现)

    题目名字: Human readable duration format 原题链接: https://www.codewars.com/kata/human-readable-duration-for ...

  2. python中列表生成式strip_列表生成式|让你的代码简洁又美观

    本文作者:陈丹慧,中南财经政法大学金融学院 文字编辑:任 哲 技术总编:张馨月 导读 已知列表list1=[1,2,3,4,5,6,7,8,9,10],如果我们想把list1中每个元素都加上2010, ...

  3. PHP 代码简洁之道 ( PHP Clean Code)(第二部分)

    PHP 代码简洁之道 ( PHP Clean Code)(第一部分)​ 使用默认参数而不是使用短路运算或者是条件判断 不好的做法: 这是不太好的因为 $breweryName 可以是 NULL. fu ...

  4. 代码简洁的上方滑动门(选项卡tab)jquery插件可重复使用,淡入淡出效果(用)

    代码简洁的滑动门(tab)jquery插件调用方法:"#tabs",".tab_con" 这里的#tabs是jquery选项卡的链接按钮的外层ID,.tab_c ...

  5. 纯js分页代码(简洁实用)

    纯js分页代码(简洁实用) 纯js写的分页代码. 复制代码代码如下: //每页显示字数 PageSize=5000; //分页模式 flag=2;//1:根据字数自动分页 2:根据[NextPage] ...

  6. JavaScript 代码简洁之道

    测试代码质量的唯一方式:别人看你代码时说 f * k 的次数. 代码质量与其整洁度成正比.干净的代码,既在质量上较为可靠,也为后期维护.升级奠定了良好基础. 本文并不是代码风格指南,而是关于代码的可读 ...

  7. js漂浮广告代码(简洁!)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org ...

  8. JAVA基础之代码简洁之道

    引言 普通的工程师堆砌代码,优秀的工程师优雅代码,卓越的工程师简化代码.如何写出优雅整洁易懂的代码是一门学问,也是软件工程实践里重要的一环.--来自网络 背景 软件质量,不但依赖于架构及项目管理,更与 ...

  9. 完整版 html代码简洁说明,html简单网页代码模板

    前言 感觉有些不公和无奈,又或许有点讽刺和好笑,付出和回报不能正比,究竟坚持多久才能到解放,正是因为模糊不清,所以往往挨不到就已经放弃了,人生太无常,一个决定只能诠释当下,但不能说明到底是否正确,选择 ...

  10. PHP 的代码简洁之道(Clean Code PHP)

    介绍 Robert C.Martin's 的 软件工程师准则 Clean Code 同样适用于 PHP.它并不是一个编码风格指南,它指导我们用 PHP 写出具有可读性,可复用性且可分解的代码. 并非所 ...

最新文章

  1. 生成多个互不重叠的不同半径圆
  2. 【树莓派】关于tinyproxy问题处理
  3. 几大搜索引擎的网站登录入口
  4. libjpeg(2)
  5. java string hash变量_java基础(六)-----String性质深入解析
  6. [Python] L1-038. 新世界 团体程序设计天梯赛GPLT
  7. java 调用gpu_GPU使用设置
  8. Opencv之Vs编译
  9. 遥感数据共享(一)珠海一号数据
  10. mysql数据库丢失还原_MySQL数据库丢失后如何自动恢复呢?
  11. CentOS 系统修复
  12. 魔方解法 -- Rubic cube
  13. 在Windows 7中使用AppLocker限制对程序的访问
  14. 计算机在段前加项目符号,word中给段落添加项目符号的方法
  15. NAACL 2019 | ​注意力模仿:通过关注上下文来更好地嵌入单词
  16. SQL SERVER数据库误删除误格式化误重装软件覆盖数据恢复修复
  17. gcc编译程序的过程
  18. 大学生求职的互联网“围城”:被神化的“大厂梦”
  19. 万年历、日历——拿来即用(简单易上手,操作方便)
  20. scrapy框架菜鸟学习记录

热门文章

  1. 团队作业4——第一次项目冲刺(Alpha版本)2nd day
  2. Looksery Cup 2015 B. Looksery Party 暴力
  3. DNN2(DotNetNuke2.0)的一些资源
  4. gecode int branch
  5. 5.28 周末笔记(三)
  6. angularjs指令参数transclude
  7. 软件行业做了3年,何去何从?到底该搞哪个方面?迷茫+努力
  8. html中offsetTop、clientTop、scrollTop、offsetTop
  9. Android Mvc 实现
  10. 多线程 Threading Multiprocessing(Python)