1. copy 和 mutableCopy
不可变 copy : (非容器或容器)浅复制
可变(copy, mutableCopy), 不可变(mutableCopy): (非容器或容器)深复制
容器内对象, 始终为浅复制
2. initWithArray: 和 initWithArray: copyItems: (Dictionary, Set 相同)
initWithArray: 容器为新地址, 容器内对象为地址拷贝
initWithArray: copyItems: 容器为新地址, 容器内对象调用copy方法构成新容器成员
3. arrayWithArray: 与initWithArray
initWithArray: 等同于 alloc → init 引用指数加1
arrayWithArray: a. alloc init 引用指数加1 方法内持有;
b. 返回后默认注册到autoreleasePool;
c. 超过方法外的自动变量,release一次 引用指数减1
d. 方法调用方使用__strong自动变量强持有一次,引用指数加1
所以说前者更高效