【问题标题】:Does removing an object from an array run the object's dealloc method?从数组中删除对象会运行对象的 dealloc 方法吗?
【发布时间】:2011-10-08 20:09:20
【问题描述】:

在这里使用Objective C。假设我有一个名为fooArray 的数组。这个fooArray 中的每个元素都是一个对象...我们将它们称为barObject1barObject2barObject3 等。现在这些对象中的每一个都有几个占用内存的属性。现在,想象一下我从fooArray 中清除了其中一个对象,使用的范围是:

[fooArray removeObjectAtIndex:0]

现在,这真的会删除对象吗?还是只是将它从数组中取出,让对象及其属性在内存中浮动?

这与我正在进行的任何项目都没有直接关系,只是想了解它是如何工作的。

谢谢!

【问题讨论】:

    标签: objective-c arrays memory


    【解决方案1】:

    数组保留它包含的对象。从数组中删除对象将调用对象上的release。然后,如果对象的保留计数为0,它将被释放。

    【讨论】:

    • 谢谢!我一直想知道的事情:)我会尽快接受您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-29
    相关资源
    最近更新 更多