Objective c NSMutableArray在发布其项目时是递归的吗?
如果我有一个二维NSMutableArray,例如Objective c NSMutableArray在发布其项目时是递归的吗?,objective-c,arrays,ios,memory-management,Objective C,Arrays,Ios,Memory Management,如果我有一个二维NSMutableArray,例如 board = [[NSMutableArray alloc] initWithCapacity:boardHeight]; for (int y = 0; y < boardHeight; y++) { NSMutableArray *row = [[NSMutableArray alloc] initWithCapacity:boardWidth]; for (int x = 0; x < boardWidth
board = [[NSMutableArray alloc] initWithCapacity:boardHeight];
for (int y = 0; y < boardHeight; y++) {
NSMutableArray *row = [[NSMutableArray alloc] initWithCapacity:boardWidth];
for (int x = 0; x < boardWidth; x++) {
[row insertObject:@"A string"];
}
[board insertObject:row atIndex:y];
[row release];
}
这会递归地释放数组吗?还是我必须手动进入数组并释放每一行
如果是这样,并且插入到每一行的对象都是自定义对象,那么在为自定义对象编写dealloc方法时,我需要考虑什么特别的事情吗?一切都会正常工作。在添加对象时,阵列将保留这些对象;在删除对象时,阵列将释放这些对象;在取消分配对象时,阵列将保留这些对象
那部分没有额外的工作。一切都会很好。在添加对象时,阵列将保留这些对象;在删除对象时,阵列将释放这些对象;在取消分配对象时,阵列将保留这些对象 该部分无需额外工作。当电路板准备释放时,它将向自身的每个对象发送释放消息。即使这些物体是NSArray,它们仍然会被释放;如果这些阵列现在已经准备好释放,它们将向其成员发送释放,等等 您的类应该正常地实现dealloc-在调用[super dealloc]之前释放您持有强引用的任何IVAR。当board准备好释放时,它将向自身的每个对象发送释放消息。即使这些物体是NSArray,它们仍然会被释放;如果这些阵列现在已经准备好释放,它们将向其成员发送释放,等等 您的类应该正常地实现dealloc-在调用[super dealloc]之前释放您持有强引用的任何IVAR
[board release];