内存管理总结

+array

方法并不是生成持有的对象

而是 通过生成并持有对象后加入autoreleasePool(自动释放池)中,待pool结束时,调用release方法释放对象

以下是对 “内存管理的思考方式”

一、能真正“自己生成并持有”对象的方法有四个

+alloc

-new

copy

mutableCopy

二、非自己生成的对像,自己也能持有

用工厂方法直接生成的对像,我们只是生成了对像,但是并没有对其持有,所以需要调用retain进行持有

如果不调用而直接调用release的话会引起程序崩溃,所以在另一种情况中,我们用+array创建的array在实际并没有对其持有,当在autoreleasePool结束后,我们在使用array对其发消息时就会同样引起崩溃。

三、不再需要自己持有的对象时 释放

四、无法释放非自己持有的对象(崩溃)

对于release的解释

当引用计数大于0时

返回yes,并且self执行dealloc方法废弃对象。

你可能感兴趣的:(内存管理总结)