我正在讨论NSMutableArray的-removeAllObjects,-removeLastObject等方法。文档只说这些方法'从数组中删除'对象。删除的对象是否已释放?
答案 0 :(得分:6)
是的。任何删除都会调用已删除的NSObject
。
Arrays保持强烈的引用 他们的内容 - 在一个托管的内存中 环境,每个对象接收一个 在添加id之前保留消息 到数组和发布消息 当它从数组中删除或 当数组被释放时。如果你 想要一个与众不同的集合 对象所有权语义,考虑一下 使用CFArray参考, NSPointerArray或NSHashTable 代替。
答案 1 :(得分:2)
是的,他们被释放了。您可以通过覆盖放在容器中的对象中的release
来查看所包含的对象。调用超类的release
方法并在其上设置断点。你会看到它被释放了。
我原先说过,我认为对象是自动释放的。结果我相信我错了。