Jon*_*ing 15 memory-management objective-c nsarray
当我NSArray
使用+时[NSArray arrayWithObjects:]
,它会复制这些对象吗?如果我在将对象添加到数组后释放它们,我会遇到问题吗?
Jim*_*uls 35
不,它不会复制它们.它保留了它们.是的,您可以在将对象添加到阵列后安全地释放它们.
一如既往,文档非常清楚地说明了这一点:
数组保持对其内容的强引用 - 在托管内存环境中,每个对象在将其id添加到数组之前接收保留消息,并在从数组中删除数据或者释放数组时接收释放消息.如果您想要具有不同对象所有权语义的集合,请考虑使用CFArray Reference,NSPointerArray或NSHashTable.