面试题-01
语法
一、 属性
readwrite, readonly, assign, retain, copy, nonatomic
属性的作用:
@property
是一个属性访问声明, 括号内支持一下几个属性:getter = getterName, setter = setterName
, 设置setter
与getter
方法名assign
:setter
方法直接赋值, 不进行任何retain
操作, 解决原类型与循环引用问题retain
:setter
方法进行copy操作,与retain
处理流程一样,先release
旧值,在copy新的对象,retainCount == 1
. 减少对上下文的依赖而引入的机制.copy
是在你不希望a和b共享一块内存是会使用到,a和b有个字的内存readwrite,readonly
: 设置可访问的级别nonatomic
: 非原子性访问,不加同步,多线程并发访问会提高性能, 默认为院子性访问.
copy
copy使用场景
当多个指针指向同一个对象时, 为避免一个指针对对象的改动对其他指针的使用产生影响,使用copy来修饰.深拷贝、浅拷贝
对于非容器内对象,不可变对象进行copy操作为浅拷贝,引用计数器+1,其他