还没太看到NSArray, 我猜测可能和对象的set方法和dealloc方法类似:
1. 当设置数组元素时, 把原来的元素release一次, 再把新元素retain一次.
比如, 有一个对象指针数组 array, 想把它的第一个元素设置为一个Student对象stu:
if (array[0] != stu) {
[array[0] release]; // 把原来的对象release一次
array[0] = [stu retain]; // 把新的对象retain一次
}
2. 如果不再使用这个数组了 (比如在main函数结束前), 对所有的数组元素release一次.
for (id obj in array) {
[obj release]; // 把每个元素release一次
// obj = nil;
}
|