- 1
- 0
- 约1.28万字
- 约 12页
- 2026-05-07 发布于河北
- 举报
OC面试题及详细答案
一、基础必考题(入门级,考察基础掌握度)
1.请说明OC中nonatomic和atomic的区别,实际开发中你更常用哪个,为什么?
答案:
核心区别:atomic是原子性的,会对属性的getter/setter方法加一把自旋锁(iOS10后优化,不再是单纯自旋锁),保证同一时间只有一个线程访问该属性,避免线程安全问题;nonatomic是非原子性的,不会加锁,多个线程可同时访问,不保证线程安全。
实际开发中更常用nonatomic,原因有两个:①atomic加锁会消耗系统资源,降低程序运行效率,尤其是频繁访问的属性(比如列表数据、UI相关属性),会明显影响性能;②实际开发中,线程安全往往不是靠atomic来保证的(atomic只能保证属性赋值/取值的原子性,不能保证复杂操作的线程安全,比如多线程同时修改一个数组),通常会用@synchronized、dispatch_queue等更灵活的方式控制线程安全,没必要为了鸡肋的原子性牺牲性能。
补充:UI控件的属性(比如UILabel的text),系统默认是nonatomic,因为UI操作本身就在主线程,不存在多线程访问的问题,用nonatomic更高效。
2.OC中的属性修饰符strong、weak、assign、copy的区别,分别用在什么场景?
答案:
这四个是最常用的属性修饰符,核心区别在于对引用计
您可能关注的文档
最近下载
- 市政工程道路水泥混凝土面层施工技术交底.docx VIP
- 临床药物治疗学(1).pdf VIP
- 现金流量表自动生成模板.xls VIP
- 2025年智慧树知到《军事理论》考试题库及答案解析.docx VIP
- 《软件设计与体系结构》期末考试试卷及答案.doc VIP
- 新22D3 电力线路敷设安装建筑工程图集.pdf VIP
- 人工智能行业市场前景及投资研究报告:CPU,Agentic AI重塑通用计算价值.pdf VIP
- DBJT15-226-2021 民用建筑电线电缆防火技术规程.pdf VIP
- 河南科技大学《软件设计与体系结构》2021-2022学年期末试卷.doc VIP
- 《中华人民共和国农村集体经济组织法》专业解读课件.pptx VIP
原创力文档

文档评论(0)