- 2
- 0
- 约1.04万字
- 约 10页
- 2026-05-06 发布于河北
- 举报
iOS面试题目及详细答案
一、基础必考题(入门级,考察基础掌握度)
1.请说说OC中nonatomic和atomic的区别,实际开发中你怎么选?
答案:核心区别是是否保证属性读写的原子性(线程安全的基础)。
atomic:系统会自动为属性的setter/getter方法加锁(自旋锁,iOS10后改为os_unfair_lock),保证同一时间只有一个线程能执行读写操作,避免读写混乱,理论上是线程安全的。但注意:atomic只保证“读写操作本身”的原子性,不保证“使用过程”的线程安全(比如多线程同时读+写,或连续两次写,依然可能出问题)。
nonatomic:不加锁,读写操作不保证原子性,线程不安全,但执行效率高。
实际开发选择:绝大多数场景用nonatomic。原因有两个:1.移动端开发中,多线程操作属性的场景相对较少,且atomic的锁会带来性能损耗(尤其频繁读写的属性,比如列表刷新时的数据源);2.即使需要线程安全,仅靠atomic不够,通常会自己加锁(比如@synchronized、NSLock),更灵活可控。只有在极少数、简单的单线程读写场景,才会考虑atomic(几乎不用)。
2.OC中strong、weak、assign、copy四个修饰符的区别,分别用在什么场景?
答案:四个修饰符核心作用是控制属性的引用计数和内存管理
您可能关注的文档
最近下载
- FSSC22000 V6食品安全管理体系程序文件一整套.docx
- 2025年高考数学二轮复习专题04 高级应用函数的周期性、单调性、奇偶性及对称性特性以解析函数性质问题(练习)(解析版).docx VIP
- 分布式光伏电站项目施工方案.docx VIP
- 于品 清华丘班数学分析讲义.pdf VIP
- 【精品】高考高频动词短语汇编.doc VIP
- 2022年湖南省普通高中学业水平合格性考试思想政治真题试卷含详解.docx VIP
- 安信证券-产业生命周期总论:A股产业赛道投资的灵魂胜负手.pdf
- 卫生管理师职称考试之《医院管理学》知识点及试题.pdf VIP
- 数学万以内加减法练习题[竖式]pdf打印版.pdf VIP
- 机电产品其它产品ckd dd马达调试.pdf VIP
原创力文档

文档评论(0)