全国服务热线:4006-028-024 成都热线:028-86633922
新闻中心网站专题联系我们
行业新闻 建站经验 网站建设资讯 手机网站资讯 微信开发资讯 APP开发资讯 商城网站资讯

成都手机网站建设:weak 的原理是什么呢,下面是分析

发布人:桔子科技    发布时间:2017-09-04 17:38:49    分享到:
很少有人知道 weak 表其实是一个 hash(哈希)表,Key 是所指对象的地址,Value 是 weak 指针的地址数组。更多人的人只是知道 weak 是弱引用,所引用对象的计数器不会加一,并在引用对象被释放的时候自动被设置为 nil。通常用于解决循环引用问题。但现在单知道这些已经不足以应对面试了,好多公司会问 weak 的原理。weak 的原理是什么呢?下面就分析一下 weak 的工作原理(只是自己对这个问题好奇,学习过程中的笔记,希望对读者也有所帮助)。

weak 实现原理的概括

Runtime 维护了一个 weak 表,用于存储指向某个对象的所有 weak 指针。weak 表其实是一个 hash(哈希)表,Key 是所指对象的地址,Value 是 weak 指针的地址(这个地址的值是所指对象的地址)数组。

weak 的实现原理可以概括一下三步:

1、初始化时:runtime 会调用 objc_initWeak 函数,初始化一个新的 weak 指针指向对象的地址。

2、添加引用时:objc_initWeak 函数会调用 objc_storeWeak ( ) 函数, objc_storeWeak ( ) 的作用是更新指针指向,创建对应的弱引用表。

3、释放时,调用 clearDeallocating 函数。clearDeallocating 函数首先根据对象地址获取所有 weak 指针地址的数组,然后遍历这个数组把其中的数据设为 nil,最后把这个 entry 从 weak 表中删除,最后清理对象的记录。

__weak 和 weak 属性差不多

本文是成都网站建设公司、成都网站设计制作公司、成都APP开发公司、成都响应式网站建设、成都VR全景制作-桔子科技公司为您整理!
成都网站建设,成都网站设计,成都网站制作,成都网页设计,成都网站建设公司 ,成都网站设计公司,成都网站制作公司,成都网页设计公司,网站建设网站制作网站设计网页设计成都响应式网站建设、成都响应式网站制作、成都响应式网站开发、成都全景制作、成都VR全景制作成都手机网站建设,手机网站建设,成都APP开发,APP开发,成都建网站,成都做网站,成都商城网站建设,集团网站建设,网站建设,高端网站建设,品牌网站建设,成都平台网站建设,成都响应式网站建设,成都微信网站建设,成都微商城网站建设,成都微信营销,成都微信小程序开发、成都网站优化,成都网络公司。

下一篇:成都手机网站建设:谈谈4p理论中的品牌,iPhone的不死之谜上一篇:成都手机网站建设:到底哪款输入法好用

最新案例
手机/微网站
  1. [成都]成都微信网站建设:微信小程序增加搜索框页面功能
  2. [成都]成都微信网站建设:兰州银行叫停微信“扫码取款”的原因
  3. [成都]成都微信网站建设:更方便!微信PC版新增搜一搜功能
  4. [成都]成都手机网站建设:手机网站简洁的页面为什么很重要
  5. [成都]成都手机网站建设:苹果再次更新开发者网站,ios全新特性
  6. [成都]成都手机网站建设:苹果推送了iOS11开发者预览版Beta10
网络营销
  1. 成都APP开发:App接口设计所使用的的方法有哪些
  2. 成都APP开发:探讨各类电商APP发展如此稳健的原因
  3. 成都APP开发:在线音乐典型APP的男女分布差异较大
  4. 成都APP开发:来看看健身APP如何提高用户粘性的方法
  5. 成都APP开发:在线约会应用Tinder首次登顶App Store畅销排行榜
  6. 成都APP开发:2017最火的2种APP分析

  • 电话:4006-028-024 028-86633922

    邮箱:Service@orangeapp.cn

    成都市成华区崔家店路789号上城国际1-24-9号

qqsina