我分配了NSMutableArray
,并添加了alloced
的对象。在我的数组上调用release
也会释放其中的元素,或者我是否必须先手动释放每个元素?
答案 0 :(得分:2)
当该集合解除分配(与发布时不同)时,会释放obj-c集合中的对象。因此,在实践中,如果您在集合中添加对象,集合将管理其对象所有权,而您无需为其元素添加额外的版本。
答案 1 :(得分:2)
查看Collections Programming Topics指南。更具体地说, Arrays部分和Array Fundamentals主题:
当托管内存环境中的阵列解除分配时,每个阵列都是如此 元素被发送一条释放消息。
因此,如果释放数组会使其保留计数为0,那么它就是
要取消分配,此时对象将收到release
消息。
否则,释放数组只会减少其保留计数
常规对象。
此外,当您在数组中放置对象时,它们会收到retain
消息
该指南解释道。