1.集合对象的内存管理
当一个对象加入到集合中,数组被销毁了,里面的对象一定会被销毁吗?
答案:会的,因为当对象被添加到数组时,对象的引用计数会加一
当数组被释放时,会向数组里的每个对象发送改一个release
示例:
结论:
1) 当对象被添加到数组中的时候,对象的引用计数 +1
2) 当数组销毁的时候,数组会向它其中的元素发送一个release消息
注意:数组被销毁时会向数组里面的每个对象发送一次release操作
}
1.官方内存管理原则
1) 当调用alloc new copy (mutableCopy)方法产生一个新对象的时候,就必须在最后在调用一次release或者autorelease
2) 当调用retain方法让对象的计数器+1 ,就必须在最后调用一个release或者autorelease
2.集合的内存管理细节
1) 当把一个对象添加到集合中时,这个对象会做一次retain操作,计数器+1
2) 当一个集合被销毁时,会对集合里面的所有对象做一次release操作,计数器会-1
3) 当一个对象从集合中移除时,这个对象会一次release操作,计数器会-1
3.普遍规律
1) 如果方法名是add\insert开头,那么被添加的对象,计数器会+1
2) 如果方法是remove\delete开头,那么被移除的对象,计数器-1