Objective c 释放数组也会释放其元素吗?

Objective c 释放数组也会释放其元素吗?,objective-c,Objective C,我分配了NSMutableArray,并添加了分配的对象。在我的数组上调用release是否也会释放其中的元素,或者我是否必须先手动释放每个元素?当释放集合时,obj-c集合中的对象将被释放,这与释放的对象不同。因此,在实践中,如果您将对象添加到集合中,集合将管理其对象所有权,您不需要为其元素添加额外的版本。查看指南。更具体地说 阵列部分和阵列基础知识主题: 在托管内存环境中解除分配阵列时,每个 元素被发送一条释放消息 所以,如果释放一个数组使其保留计数为0,那么它大约 要解除分配,此时对象将收

我分配了NSMutableArray,并添加了分配的对象。在我的数组上调用release是否也会释放其中的元素,或者我是否必须先手动释放每个元素?

当释放集合时,obj-c集合中的对象将被释放,这与释放的对象不同。因此,在实践中,如果您将对象添加到集合中,集合将管理其对象所有权,您不需要为其元素添加额外的版本。

查看指南。更具体地说 阵列部分和阵列基础知识主题:

在托管内存环境中解除分配阵列时,每个 元素被发送一条释放消息

所以,如果释放一个数组使其保留计数为0,那么它大约 要解除分配,此时对象将收到一条释放消息。 否则,释放数组只会像释放其他数组一样减少其保留计数 常规对象

此外,在阵列中放置对象时,它们会收到一条保留消息,如下所示
指南解释道。

所以我必须先解除锁定,然后再释放?不,你需要释放你保留的数组,它将自动解除分配-然后它的元素将被释放,所以1 alloc=1 release?谢谢。@Omega,如果您使用alloc创建对象,则“是”,对象的重新计数将为1,您需要在某个时候释放它,例如,在将其添加到集合后立即释放,或者向对象发送自动释放消息