2009-08-11 82 views

回答

35

不,它不会复制它们。它保留了它们。是的,您可以在将对象添加到数组后将它们安全释放。

The docs一如既往地拼写了这一点很清楚:

阵列保持在内容-受管理存储环境中它们的强引用,每个对象接收保留消息中的其ID被添加到该阵列之前和从数组中移除或释放数组时释放消息。如果您想要具有不同对象所有权语义的集合,请考虑使用CFArray Reference,NSPointerArray或NSHashTable。

+2

很棒的回答。还要记住+ arrayWithObjects:返回一个无主的(“autoreleased”)数组,所以你必须保留它以避免丢失数组,但是数组中的对象与数组一样长。 – 2009-08-11 15:15:08

+0

非常感谢!您应该知道我在发布Stack Overflow之前搜索文档(有时候,我没有抓到所有内容)。 感谢您花时间回答我的问题。 – 2009-08-11 22:41:16

+1

感谢您的回答 - 尽管该简介不在参考文献中,但仅供参考。据我所知,整个部分都没有了。你只能通过查看子类信息和一些函数调用来推断它,主要是因为你指出了正确的方向。 – RonLugge 2011-05-10 03:08:43