+array
方法并不是生成持有的对象
而是 通过生成并持有对象后加入autoreleasePool(自动释放池)中,待pool结束时,调用release方法释放对象
以下是对 “内存管理的思考方式”
一、能真正“自己生成并持有”对象的方法有四个
+alloc
-new
copy
mutableCopy
二、非自己生成的对像,自己也能持有
用工厂方法直接生成的对像,我们只是生成了对像,但是并没有对其持有,所以需要调用retain进行持有
如果不调用而直接调用release的话会引起程序崩溃,所以在另一种情况中,我们用+array创建的array在实际并没有对其持有,当在autoreleasePool结束后,我们在使用array对其发消息时就会同样引起崩溃。
三、不再需要自己持有的对象时 释放
四、无法释放非自己持有的对象(崩溃)
对于release的解释
当引用计数大于0时
返回yes,并且self执行dealloc方法废弃对象。