- 1
- 0
- 约5.62千字
- 约 8页
- 2026-10-12 发布于河北
- 举报
iOS高频面试题及详细答案(真实职场版)
一、OC基础核心面试题
1.说一说OC的@property关键字及区别
@property是对成员变量的封装,自动生成getter、setter方法,日常开发核心关键字分为修饰权限、内存管理、线程、特殊属性四类,实际使用区别如下:
内存管理关键字
strong:强引用,默认关键字,适用于OC对象。持有对象,计数器+1,只要有强引用指向,对象就不会销毁。日常自定义对象、UI控件基本都用strong。
weak:弱引用,不持有对象,计数器不变化。对象销毁后,指针会自动置空,不会产生野指针。专门用于解决循环引用,比如代理、block内部引用self、控件约束引用。
assign:直接赋值,不做内存管理。只用于基本数据类型(int、float、BOOL)和枚举,不能修饰对象,会产生野指针。
copy:拷贝,生成新对象。NSString、NSArray、NSDictionary不可变集合必须用copy,防止外部可变对象修改导致数据错乱;mutable对象一般不用copy。
权限与特性关键字
retain:MRC时代关键字,作用同strong,ARC下基本废弃。
readonly:只有getter方法,没有setter方法,只能赋值初始化,后续无法修改。
readwrite:默认属性,同时有get
原创力文档

文档评论(0)