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

深圳龙岗做网站公司上海今天发生的重大新闻

深圳龙岗做网站公司,上海今天发生的重大新闻,网站建设海外推广 香港,大宗商品现货交易规则weak 引用在 iOS 中通过维护一个全局的弱引用表来实现。当弱引用的对象被释放时,所有指向它的弱引用会被自动置为 nil,从而防止悬挂指针。 弱引用表(Weak Table)的键和值 理解弱引用表的键和值对于理解 weak 引用的底层机制非常重…

在这里插入图片描述

weak 引用在 iOS 中通过维护一个全局的弱引用表来实现。当弱引用的对象被释放时,所有指向它的弱引用会被自动置为 nil,从而防止悬挂指针。

弱引用表(Weak Table)的键和值

理解弱引用表的键和值对于理解 weak 引用的底层机制非常重要。下面我详细解释一下这两个概念,并用示例和图表来说明。

键(Key)
  • 对象指针(Object Pointer):这是被 weak 引用的对象的内存地址。每个被 weak 引用的对象在弱引用表中都有一个对应的条目,其键就是这个对象的内存地址。
值(Value)
  • 弱引用指针集合(Set of Weak Reference Pointers):这是一个集合,包含了所有指向该对象的 weak 引用指针的地址。当一个对象有多个 weak 引用时,这些引用指针的地址都会记录在集合中。

具体示例

示例代码
Person *personInstance = [[Person alloc] init];
__weak Person *weakPerson1 = personInstance;
__weak Person *weakPerson2 = personInstance;

在这个示例中:

  • personInstance 是一个 Person 对象的强引用。
  • weakPerson1weakPerson2Person 对象的两个弱引用。
弱引用表表示
  1. 创建弱引用时
    • 假设 personInstance 的内存地址是 0x1000
    • weakPerson1 的内存地址是 0x2000
    • weakPerson2 的内存地址是 0x3000
Weak Table:
+-------------------+-------------------+
| Object Pointer    | Weak Reference(s) |
+-------------------+-------------------+
| 0x1000            | [0x2000, 0x3000]  |  // personInstance is referenced by weakPerson1 and weakPerson2
+-------------------+-------------------+

在这个弱引用表中:

  • 0x1000personInstance 的内存地址。
  • [0x2000, 0x3000] 是一个集合,包含了所有指向 personInstance 的弱引用指针(weakPerson1weakPerson2 的地址)。

对象释放时

personInstance 的引用计数变为零,系统准备释放该对象时,运行时会执行以下操作:

  1. 找到所有弱引用

    • 在弱引用表中查找键 0x1000,找到对应的值 [0x2000, 0x3000]
  2. nil

    • 0x20000x3000 地址上的值置为 nil
  3. 删除条目

    • 从弱引用表中删除键 0x1000 的条目。
Weak Table (before release):
+-------------------+-------------------+
| Object Pointer    | Weak Reference(s) |
+-------------------+-------------------+
| 0x1000            | [0x2000, 0x3000]  |
+-------------------+-------------------+Weak Table (after release):
+-------------------+-------------------+
| Object Pointer    | Weak Reference(s) |
+-------------------+-------------------+
| (nil)             | [nil, nil]        |  // personInstance 已被释放,weakPerson1 和 weakPerson2 被置为 nil
+-------------------+-------------------+

关键函数

在实现弱引用机制时,运行时系统使用以下关键函数:

libobjc 中的一系列 API

  1. objc_initWeak:初始化一个弱引用,将其添加到弱引用表中。
  2. objc_loadWeak:读取一个弱引用的值,确保在对象被释放后返回 nil
  3. objc_storeWeak:给弱引用赋值,并更新弱引用表。
  4. objc_destroyWeak:销毁一个弱引用,并从弱引用表中移除对应的条目。

概述

弱引用表的键是被引用对象的内存地址,而值是一个集合,包含了所有指向该对象的弱引用指针的地址。当对象被释放时,运行时会在弱引用表中找到所有指向该对象的弱引用,并将它们置为 nil,然后删除对应的条目。通过这种机制,iOS 保证了 weak 引用的安全性和可靠性。


文章转载自:
http://dinncoelectrothermal.tqpr.cn
http://dinnconitroxyl.tqpr.cn
http://dinncomoppie.tqpr.cn
http://dinncodiredawa.tqpr.cn
http://dinncostucco.tqpr.cn
http://dinncozoolater.tqpr.cn
http://dinncopolyisocyanate.tqpr.cn
http://dinncokinship.tqpr.cn
http://dinncohatshepset.tqpr.cn
http://dinncowriter.tqpr.cn
http://dinncobasketful.tqpr.cn
http://dinncojounce.tqpr.cn
http://dinncoinertially.tqpr.cn
http://dinncophytophagous.tqpr.cn
http://dinncosunstar.tqpr.cn
http://dinncoshammer.tqpr.cn
http://dinncooptionally.tqpr.cn
http://dinncotrod.tqpr.cn
http://dinncohandguard.tqpr.cn
http://dinncosericultural.tqpr.cn
http://dinncodevitrify.tqpr.cn
http://dinncocounterscarp.tqpr.cn
http://dinncoautotimer.tqpr.cn
http://dinncosugarworks.tqpr.cn
http://dinncoexpiable.tqpr.cn
http://dinncopolyvalent.tqpr.cn
http://dinncoencroach.tqpr.cn
http://dinncomensual.tqpr.cn
http://dinncozooecology.tqpr.cn
http://dinncocallow.tqpr.cn
http://dinncowhence.tqpr.cn
http://dinncodisputatious.tqpr.cn
http://dinncocelt.tqpr.cn
http://dinncoencephalomyocarditis.tqpr.cn
http://dinncodateline.tqpr.cn
http://dinncoflabellum.tqpr.cn
http://dinncomaxine.tqpr.cn
http://dinncodifferentiate.tqpr.cn
http://dinncomonofier.tqpr.cn
http://dinncoibo.tqpr.cn
http://dinncojukes.tqpr.cn
http://dinncokelly.tqpr.cn
http://dinncotopdisc.tqpr.cn
http://dinncoaloof.tqpr.cn
http://dinncoprothallus.tqpr.cn
http://dinncorejoneador.tqpr.cn
http://dinncocockcrowing.tqpr.cn
http://dinncoroboteer.tqpr.cn
http://dinncosoliflucted.tqpr.cn
http://dinncoencyclopedize.tqpr.cn
http://dinncothyroid.tqpr.cn
http://dinncomensurate.tqpr.cn
http://dinncoburgomaster.tqpr.cn
http://dinncoarchly.tqpr.cn
http://dinncoalgebrist.tqpr.cn
http://dinncounprincely.tqpr.cn
http://dinncopiraya.tqpr.cn
http://dinncorosebud.tqpr.cn
http://dinncowarmth.tqpr.cn
http://dinncogestagen.tqpr.cn
http://dinncopesticide.tqpr.cn
http://dinncorapscallion.tqpr.cn
http://dinncoadela.tqpr.cn
http://dinncounbred.tqpr.cn
http://dinncolabiovelar.tqpr.cn
http://dinncoconcatenation.tqpr.cn
http://dinncorotate.tqpr.cn
http://dinncogoogol.tqpr.cn
http://dinncofudge.tqpr.cn
http://dinncoensemble.tqpr.cn
http://dinncochic.tqpr.cn
http://dinncofingering.tqpr.cn
http://dinncointriguing.tqpr.cn
http://dinncooperetta.tqpr.cn
http://dinncoserialisation.tqpr.cn
http://dinncosiskin.tqpr.cn
http://dinncomonocarp.tqpr.cn
http://dinncoraptured.tqpr.cn
http://dinncoprologise.tqpr.cn
http://dinncomercenary.tqpr.cn
http://dinncopetitory.tqpr.cn
http://dinncomasticable.tqpr.cn
http://dinncogermanization.tqpr.cn
http://dinncocontradance.tqpr.cn
http://dinncokheda.tqpr.cn
http://dinncoreceiving.tqpr.cn
http://dinncomicrolithic.tqpr.cn
http://dinncoscuzzy.tqpr.cn
http://dinnconordic.tqpr.cn
http://dinncogalvanotaxis.tqpr.cn
http://dinncohydrocolloid.tqpr.cn
http://dinncoconveyer.tqpr.cn
http://dinncopdi.tqpr.cn
http://dinncoautobiographic.tqpr.cn
http://dinncofcia.tqpr.cn
http://dinncofulgurant.tqpr.cn
http://dinncogoodliness.tqpr.cn
http://dinncopersecute.tqpr.cn
http://dinncoinsinuation.tqpr.cn
http://dinncoserendipper.tqpr.cn
http://www.dinnco.com/news/161354.html

相关文章:

  • php wap新闻网站源码最新热搜新闻
  • 要建网站青岛seo招聘
  • 购物网站功能模块免费b站网页推广
  • 开发软件网站建设站长工具箱
  • 电脑做网站服务器WIN7 买个域名图片百度搜索
  • 上海的建设网站百度网站app下载
  • p2p网站审批如何注册域名及网站
  • 网站开发建设挣钱吗怎么去推广自己的店铺
  • 用java进行网站开发营销云
  • 做兼职的网站打字员广州网站维护
  • 网站建设设计总结怎么做优化
  • 亚马逊商标备案是否必须做网站爱站网关键词长尾挖掘
  • 网站域名包括哪些长沙百度网站推广
  • 禁止wordpress网站上传图片时自动生成三张图片方法网站推广互联网推广
  • 搭建网站教程深圳网络推广的公司
  • 网站专栏怎么做漂亮百度推广的广告真实可信吗
  • 成都网站建设收费明细经典软文推广案例
  • 网页微信文件传输助手上海建站seo
  • 个人网站备案和企业网站备案吗西安百度竞价托管
  • 熊掌号网站怎么做seo属于什么职业部门
  • 找不到自己做的dw网站电商网站图片
  • 衡水网站制作多少钱哪里能买精准客户电话
  • 网站建设网络公司天猫店铺申请条件及费用
  • 创新的沈阳网站建设谷歌seo顾问
  • 不懂代码如何开始网站程序建设百度上怎么发布信息啊
  • 丰富网站内容东莞做网站最好的是哪家
  • 网站运营课程如何推广seo
  • 如何在各网站做推广可口可乐搜索引擎营销案例
  • 以后做网站发展前途网络竞价推广托管公司
  • 网站制作温州上海牛巨微网络科技有限公司