目标C数组和对象发行 [英] Objective C Array and Object Release
问题描述
我有一个关于何时释放的NSArray的元素的新手问题。请参见下面的伪code:
I have a newbie question regarding when to release the elements of a NSArray. See following pseudo code:
NSMutalbeArray *2DArray = [[NSMutableArray alloc] initWithCapacity:10];
for (int i=0;i<10;i++) {
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:5];
for (int j=0;j<5;j++) {
MyObject *obj = [[MyObject alloc] init];
[array addObject:obj];
[obj release];
}
[2DArray addObject:array];
[array release];
}
// use 2DArray to do something
[2DArray release]
我在这里的问题是,当我释放2DArray,我是否需要先明确地释放它的每一个元素(数组)的?此外,在我松开数组的对象,做我需要释放它的每一个元素(myObject的)第一?
My question here is, when I release 2DArray, do I need to explicitly release each of its element (array) first? Also, before I release the "array" object, do I need to release each of its element (MyObject) first?
我是新来的目的C.请帮助。谢谢。
I am new to Objective C. Please help. thanks.
推荐答案
没有,你并不需要告诉每个对象为发布
D。当您发送发布
方法的的NSArray
,它会自动发送一个发布
方法内第一。每个项目
No, you don't need to tell each object to be release
d. When you send a release
method to an NSArray
, it automatically sends a release
method to each item inside first.
所以你的情况,你发 [2DArray发布]
。这将自动发送 [阵列发行]
到其他每个阵列,它发送 [OBJ发布]
里面的每个每个对象阵列
。
So in your case, you send [2DArray release]
. This automatically sends [array release]
to every other array, which sends [obj release]
to each object inside each array
.
这篇关于目标C数组和对象发行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!