我在一个方法中(在应用程序的整个生命周期)中创建了几个 UIButton(带有选择器),并将它们全部粘贴到 NSMutableArray 中。创建的按钮不是属性,但数组是。
- 如果我从数组中删除一个按钮,该按钮会自动从内存中释放吗?
- 如果上面的答案是否定的,我该怎么做才能让它从内存中释放?
我在一个方法中(在应用程序的整个生命周期)中创建了几个 UIButton(带有选择器),并将它们全部粘贴到 NSMutableArray 中。创建的按钮不是属性,但数组是。
该按钮最终确实会从内存中释放,因为没有人保留它。无论如何,它的保留计数都会减少,但只有当没有其他人保留它时,它才会从内存中释放。
然而,这是一个有点令人困惑的机制 - 请记住,UIButtons 是视图,并且可能是您的视图层次结构的一部分,它也保留了它们。如果它们也是可见的,则必须从其超级视图中删除它们才能被释放。
您放入 a NSArray
(和 a NSMutableArray
)的任何内容都会被数组保留,并在从数组中删除或数组本身被释放时释放。对于按钮和任何其他对象都是如此。