0

我在一个方法中(在应用程序的整个生命周期)中创建了几个 UIButton(带有选择器),并将它们全部粘贴到 NSMutableArray 中。创建的按钮不是属性,但数组是。

  1. 如果我从数组中删除一个按钮,该按钮会自动从内存中释放吗?
  2. 如果上面的答案是否定的,我该怎么做才能让它从内存中释放?
4

2 回答 2

1

该按钮最终确实会从内存中释放,因为没有人保留它。无论如何,它的保留计数都会减少,但只有当没有其他人保留它时,它才会从内存中释放。

然而,这是一个有点令人困惑的机制 - 请记住,UIButtons 是视图,并且可能是您的视图层次结构的一部分,它也保留了它们。如果它们也是可见的,则必须从其超级视图中删除它们才能被释放。

于 2013-05-19T15:31:33.297 回答
1

您放入 a NSArray(和 a NSMutableArray)的任何内容都会被数组保留,并在从数组中删除或数组本身被释放时释放。对于按钮和任何其他对象都是如此。

于 2013-05-19T15:31:45.377 回答