objective-c - 弱(与强)对象引用的寿命是多少?
问题描述
我突然想到...我相信弱引用的生命周期与该引用的范围有关(在函数内或全局内)。
所以我想知道,只要我将数据处理保持在特定范围内,那么我应该可以使用弱引用和强引用。正确的?
我问的原因是……有人告诉我,一个组织的政策是默认保持块/关闭“弱”,以避免意外的保留周期。
解决方案
一个组织的策略是默认保持块/关闭“弱”,以避免意外的保留周期。
可能,该组织有一项政策,即保持由块“弱”捕获的引用以避免保留周期。块本身,作为属性保存,被复制。
在一个非常特殊的情况下,块会导致保留循环:块引用一个对象(自身或其他对象),而该对象(直接或间接)保留该块。
大多数时候,我们通过检查知道什么对象将保留一个块。说那是“objectA”。保留周期问题是:块中引用的任何对象是否直接或间接保留“objectA”?这些对象,而不是其他对象,必须声明为 weak 才能在块中使用。
一直声明它们都很弱就可以了,但是,IMO,会让未来的代码读者担心作者对自己的代码没有深入的理解。
推荐阅读
- flutter - 类型“Null”不是类型转换中“bool”类型的子类型
- kubernetes - GKE Autopilot 有时会杀死 Pod,是否有办法防止关键服务发生这种情况?
- javascript - 如何提取服务器发送的错误信息?
- python - Web3 python无法发送交易
- python - 获取有关 1 QueryDjango 的所有信息
- postgresql - 将 postgreSQL 查询转换为 nestjs/sequelize 查询
- reactjs - 我如何添加输入文本并在反应中由地图创建的 li 显示
- java - 将 LocalDateTime UTC 转换为欧洲/罗马给了我错误的结果
- swift - CommonCrypto 加密解密不匹配
- node.js - 如何为 Firebase 云功能导入基于模块的依赖项?