- 4
- 0
- 约8.24千字
- 约 9页
- 2026-06-10 发布于河北
- 举报
中高级iOS笔试题及详细答案
一、基础核心题(每题10分,共30分)
1.简述OC中weak和assign的区别,以及weak的实现原理
参考答案:
###区别(核心重点)
1.适用对象不同:weak仅用于OC对象(如NSObject子类),不能用于基本数据类型(int、float等);assign可用于基本数据类型,也可用于OC对象,但用于OC对象时存在野指针风险。
2.内存管理行为不同:weak修饰的对象,当被释放后,指针会自动置为nil(避免野指针);assign修饰的OC对象,被释放后,指针不会置nil,仍指向原内存地址(成为野指针,访问时会崩溃)。
3.引用类型不同:两者均为弱引用(不增加引用计数),但assign用于OC对象时,本质是“无自动置nil的弱引用”,而weak是“有自动置nil的弱引用”。
###weak实现原理(底层逻辑,贴合实际开发理解)
OC中weak的实现依赖“弱引用表(SideTable)”,核心流程如下:
1.当用weak修饰一个对象时,系统会将该对象的指针和weak指针本身,注册到SideTable的弱引用表中(弱引用表是一个哈希表,key是被引用对象的地址,value是该对象所有weak指针的集合)。
2.当被引用的对象引用计数变为0(即将被释放)时,系统会遍历弱引用表中该对象对应的所有weak指针,将它们全部置为
您可能关注的文档
最近下载
- 夏普 MX-M7040N 彩色复印机中文维修手册.pdf VIP
- 风景园林专业课程讲解PPT.pptx
- 孟婆的碗简谱钢琴谱 简谱双手数字完整版原版.pdf
- 2026年安徽省中考英语试卷及答案.pdf VIP
- 深圳罗湖区六年级语文下册期末情景练习卷 二(原卷+答案与解释)2025-2026学年第二学期 部编版.docx
- 年产600吨光纤预制棒智能制造项目环境影响报告.pdf VIP
- 佳能c7500系列C7570C7580C7565C7580iC7570iC7560i彩色复印机维修手册中文c7570iiii可以参.pptx VIP
- 佳能c7500系列C7570C7580C7565C7580iC7570iC7560i彩色复印机维修手册中文c7570iiii可以参.pptx VIP
- 2024年第一次广东省普通高中学业水平合格性考试化学含答案.docx VIP
- 钢筋混凝土结构施工实施方案.doc VIP
原创力文档

文档评论(0)