Objective c 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

如果我有一个二维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; 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];