1

可以说我有UIViewController一个实例变量UIBarButtomItem *button,它不是属性。在viewDidLoad我做:

button = [[UIBarButtonItem alloc] init...] 

然后

self.navigationController.leftBarButtonItem = button

如果我想稍后在同一个班级中使用它,我应该释放按钮对象吗?我对数组有同样的问题(将对象添加到数组并稍后使用)。我很困惑,因为集合和UIViews保留添加到它们的对象

4

2 回答 2

1

这取决于您以后如何访问它们。如果您通过实例变量而不是通过目标集合来访问它们,那么您绝对应该释放它们。

于 2012-08-10T07:30:36.307 回答
0

_button = [UIBarButtonItem alloc] init ..] //假设 _button 是类实例变量

按钮保留计数为 1。

当您将其分配给 leftBarButtonItem 属性时 - 它的保留计数变为 2。

因此,只要您在 viewdidunload/dealloc 中释放按钮对象,就应该很好,因为当 leftBarButton 消失或重新分配时,它将使 _button 计数为 0,从而正确释放您的对象。

如果 _button 不是实例变量,那么您应该释放 _button 并且您可以使用 .leftBarButtonProperty 再次访问它。

于 2012-08-10T07:32:19.473 回答