当我NSArray
使用 +[NSArray arrayWithObjects:]
时,它会复制这些对象吗?如果我在将对象添加到数组后释放它们,我会遇到问题吗?
问问题
7120 次
1 回答
35
不,它不会复制它们。它保留了它们。是的,您可以在将对象添加到数组后安全地释放它们。
docs一如既往地非常清楚地说明了这一点:
数组维护对其内容的强引用——在托管内存环境中,每个对象在其 id 被添加到数组之前收到一条保留消息,并在从数组中删除或解除分配数组时收到一条释放消息。如果您想要一个具有不同对象所有权语义的集合,请考虑改用 CFArray Reference、NSPointerArray 或 NSHashTable。
于 2009-08-11T06:40:26.303 回答