哈哈

晓锌IP属地: 河南
字数 546阅读 394

今个在群里看了一段有意思的话:

【从历年weak看iOS面试】 2013年 面试官:代理用weak还是strong? 我 :weak 。 面试官:明天来上班吧 2014年 面试官:代理为什么用weak不用strong? 我 : 用strong会造成循环引用。 面试官:明天来上班吧 2015年 面试官:weak是怎么实现的? 我 :weak其实是 系统通过一个hash表来实现对象的弱引用 面试官:明天来上班吧 2016年 面试官:weak是怎么实现的? 我 :runtime维护了一个weak表,用于存储指向某个对象的所有weak指针。weak表其实是一个hash(哈希)表,key是所指对象的地址,Value是weak指针的地址(这个地址的值是所指对象指针的地址)数组。 面试官:明天来上班吧 2017年 面试官:weak是怎么实现的? 我 : 1 初始化时:runtime会调用objc_initWeak函数,初始化一个新的weak指针指向对象的地址。 2 添加引用时:objc_initWeak函数会调用 storeWeak() 函数, storeWeak() 的作用是更新指针指向,创建对应的弱引用表。 3 释放时,调用clearDeallocating函数。clearDeallocating函数首先根据对象地址获取所有weak指针地址的数组,然后遍历这个数组把其中的数据设为nil,最后把这个entry从weak表中删除,最后清理对象的记录。 面试官:明天来上班吧 2018年 面试官:weak是怎么实现的? 我 :跟2017年说的一样,还详细补充了objc_initWeak, storeWeak, clearDeallocating的实现细节。 面试官:小伙子基础不错。13k ,996干不干?干就明天来上班。。 下一个 2019年 面试官:weak是怎么实现的? 我 : 别说了,拿纸来,我动手实现一个。 面试官:等写完后,面试官慢悠悠的说,小伙子不错,我考虑考虑,你先回去吧

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
更多精彩内容,就在简书APP
"余生,有你才好。"
还没有人赞赏,支持一下
晓锌余生,有你才好。
总资产1共写了1.8W字获得7个赞共4个粉丝

推荐阅读更多精彩内容

  • 一 她有一双特别漂亮的眸子,一笑起来,眉眼弯弯,仿佛所有的阳光都被揉碎进她的眼睛里。她总是很快乐,无论何时何地都是...
    暖狐阅读 856评论 0 9
  • 你说你没有忘记 操场上陪着夕阳奔跑的背影 教室里没剩几页的倒计时牌 那你怎么舍得离开 记忆中的那个班级 同学间的玩...
    地球最后的夜晚阅读 252评论 2 2
  • 一直以来,我都不要我的悲伤,其实,我真的很悲伤。欠钱又分居,这都不是我想要的。我不能直面我的悲伤,我总在逃避,假装...
    Apple圆阅读 148评论 0 0
  • 春天的气息扑鼻而来。早上醒来,闻到的是清香的桃花香,听到的是小鸟欢快的鸣叫声像是对世人说:“早上好,早上好...
    萱白阅读 314评论 3 3
  • 2018年8月7日星期二(农历六月二十六)天气晴 俗话说“立了秋,早上晚上凉飕飕”。真希望这炎热的天气早点结束,凉...
    wzy知足常乐阅读 188评论 0 0