KVO全家桶

news/2024/11/7 18:30:16/

KVO

KVO(Key-Value-Observer)也就是观察者模式,是苹果提供的一套事件通知机制。允许对象监听另一个对象特定属性的改变,并在改变时接收到事件。

1、KVO使用
  • 监听对象的某个属性
- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(nullable void *)context;
  • 实现非正式协议
- (void)observeValueForKeyPath:(nullable NSString *)keyPath ofObject:(nullable id)object change:(nullable NSDictionary<NSKeyValueChangeKey, id> *)change context:(nullable void *)context;
  • 移除观察者
- (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath;

注意:addObserver和removeObserver需要成对出现,苹果建议在init的时候添加观察者,delloc时移除观察者。

  • 如果没有移除,那会在观察者释放后在次接收到KVO回调会造成crash
  • 如果重复remove也会导致NSRangeException类型的Crash

http://www.ppmy.cn/news/730914.html

相关文章

为什么flyme不支持谷歌服务器,大家的flyme能正常使用谷歌全家桶吗

满意答案 sxkjf 2017.12.05 采纳率:56% 等级:9 已帮助:367人 从初代的Flyme 1.0,到如今的Flyme5.0,Flyme凝聚了魅族多年来对智能手机用户体验的深度发掘和在其历代操作系统上演进优化的经验和技术实力,将「化繁为简,纯简绝俗」的设计理念发挥到了极致。Flyme作为安卓…

最全总结 | 聊聊 Python 数据处理全家桶(配置篇)

1.前言 在实际项目中&#xff0c;经常会接触到各种各样的配置文件&#xff0c;它可以增强项目的可维护性 常用配件文件的处理方式&#xff0c;包含&#xff1a;JSON、ini / config、YAML、XML 等 本篇文章&#xff0c;我们将聊聊 Python 数据处理全家桶之配置文件大总结 2.…

苹果HomeKit与谷歌 Home对比:谁是最佳选择?

没有所谓最好的产品&#xff0c;只有最适合的选择&#xff01;最适合您的选择主要取决于你与家人正在使用的设备。 如果长期使用iPhone、iPad 或其他Apple 设备&#xff0c;甚至有苹果全家桶&#xff0c;那么选择HomeKit&#xff0c;因为支持HomeKit 认证的产品加上苹果设备&a…

安装vue全家桶(mac)

下载node npm -v sudo npm install webpack -g sudo npm install -g cnpm --registryhttps://registry.npm.taobao.org sudo npm install -g vue/cli vue create 1113(回车默认选择) 进入新建文件夹根目录&#xff0c;cd 1113 npm run serve

c++ vs2015 播放音乐_苹果音乐全家桶有哪些 苹果音乐全家桶介绍_智能常识

花火网消息&#xff0c;一转眼也差不多当了十来年的苹果全家桶用户了&#xff0c;iPhone、iPad、Mac换了又换。虽然孩子已经长大了&#xff0c;但没变过的&#xff0c;是我对音乐的喜爱。还记得第一次买了iPod&#xff0c;从店里出来的满心欢喜&#xff0c;戴上耳机都不舍得摘下…

超全vue指令全家桶

在 Vue.js 中&#xff0c;指令&#xff08;Directive&#xff09;是一种特殊的属性&#xff0c;它可以用于扩展 HTML 元素的行为。指令以 v- 前缀作为标识符&#xff0c;用于标识当前属性是一个指令。 数据绑定类指令 1.v-text填充文本 v-text 是 Vue.js 内置指令之一&#x…

手撸一个Flutter插件实现跨苹果全家桶云同步持久化Key Value数据

前言 作为一个客户端开发者&#xff0c;后端开发一直是我的弱项。虽然GPT的横空出世&#xff0c;让我对后端的开发有一点眉目。但是现实是&#xff0c;能不触碰就不触碰&#xff0c;因为人的精力是有限&#xff0c;如何在有限的时间里发挥最大的作用一直是我的一个追求。所以回…

在Windows系统删除苹果全家桶软件的顺序

移除和重新安装适用于 Windows 7 及更高版本的 iTunes 及相关软件组件 - Apple 支持 (中国) 移除和重新安装适用于 Windows 7 及更高版本的 iTunes 及相关软件组件 移除 iTunes 及相关组件 如果您在卸载这些组件方面需要协助&#xff0c;请按照以下步骤操作&#xff1a; W…