Objective c 释放目标-c

Objective c 释放目标-c,objective-c,memory-management,Objective C,Memory Management,在Objective-c中,我有: SomeObject *values[3][3]; 当解除分配时,如C++中,我应该逐个元素释放?< /P> 或者如果我这样做了: [values release]; 是否正常?版本仅适用于Objective-C对象。像您这样的C样式数组只有一些堆栈内存 在您的例子中,看起来您正在使用它来存储3x3=9个Objective-C对象。如果您想全部释放它们,您需要逐个元素地释放它们。C++类比在这种情况下不成立,因为数组本身不是Objto-C对象。 如果您将内

在Objective-c中,我有:

SomeObject *values[3][3];

当解除分配时,如C++中,我应该逐个元素释放?< /P> 或者如果我这样做了:

[values release];
是否正常?

版本仅适用于Objective-C对象。像您这样的C样式数组只有一些堆栈内存

在您的例子中,看起来您正在使用它来存储3x3=9个Objective-C对象。如果您想全部释放它们,您需要逐个元素地释放它们。C++类比在这种情况下不成立,因为数组本身不是Objto-C对象。 如果您将内容保存在NSMutableArray中,则答案会有所不同。顺便说一下,您应该了解一下。

版本仅适用于Objective-C对象。像您这样的C样式数组只有一些堆栈内存

在您的例子中,看起来您正在使用它来存储3x3=9个Objective-C对象。如果您想全部释放它们,您需要逐个元素地释放它们。C++类比在这种情况下不成立,因为数组本身不是Objto-C对象。
如果您将内容保存在NSMutableArray中,则答案会有所不同。顺便说一下,你应该研究一下。这是一个指针数组。只有值指向第一个对象,所以[values release]将只释放第一个对象。
您必须释放数组中的每个对象。

它是指针数组。只有值指向第一个对象,所以[values release]将只释放第一个对象。
您必须释放数组中的每个对象。

这是错误的,[值释放]不会释放数组中的第一个对象。但是[values[0]release]将释放。@不变量:这是不正确的,[values[0]release]不会释放2D数组中的第一个对象。但是[values[0][0]release]将释放。这是不正确的,[values release]不会释放数组中的第一个对象。但是[values[0]release]将释放。@不变量:这是不正确的,[values[0]release]不会释放2D数组中的第一个对象。但是[values[0][0]release]会。