栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么必须在ios8中删除观察者?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么必须在ios8中删除观察者?

您链接的文章已对此进行了详细说明:

通知中心现在保留对观察者的清零引用:

如果观察者能够存储为弱归零引用,则底层存储会将观察者存储为弱归零引用,或者如果对象不能弱存储(即,它具有自定义的保留/释放机制会阻止运行时)
(因为能够弱地存储对象)将其存储为非弱的清零参考。

在iOS
9之前,

NSNotificationCenter
没有使用
weak
引用来实现,因此
NSNotificationCenter
不知道目标已被释放。它盲目地将通知发送给已注册的任何目标。如果目标已被释放,则很糟糕(很可能崩溃)。因此,需要始终注销。

在iOS
9中,

NSNotificationCenter
开始使用弱引用。这意味着它现在知道是否已释放了已注册的目标之一。这意味着它不再尝试将通知发送到已解除分配的目标。这意味着您不再需要在取消分配目标之前显式注销该目标。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409669.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号