iOS面试复习3——关键字

一、@property参数

1、控制set方法的内存管理

retain:release旧值,retain新值(用于OC对象)

assign:直接赋值,不做任何内存管理(默认,用于非OC对象类型)

copy:release旧值,copy新值(一般用于NSString、Block)


2、控制需不需生成set方法

readwrite:同时生成set方法和get方法(默认)

readonly:只会生成get方法


3、多线程管理

atomic:提供多线程安全。是oc使用的一种线程保护技术,是防止在未完成的时候被另外一个线程读取,造成数据错误。而这种机  制是耗费系统资源的,所以在Iphone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。

nonatomic:禁止多线程,变量保护,提高性能。


4、控制set方法和get方法的名称

setter:设置set方法的名称,一定有个冒号:

getter:设置get方法的名称


5、值可否为空

nullable可空类型。

null_resettable来表示setter nullable,但是getter nonnnull。


6、ARC下@property修饰符

strong : 用于OC对象, 相当于MRC中的retain

weak : 用于OC对象, 相当于MRC中的assign

assign : 用于基本数据类型, 跟MRC中的assign一样

你可能感兴趣的:(iOS面试复习3——关键字)