添加的UINavigationController按钮是否需要自动释放?这段代码好吗?

时间:2011-05-27 00:28:10

标签: iphone objective-c ios memory-management uinavigationcontroller

添加的UINavigationController按钮是否需要自动释放?这段代码好吗?

背景 - 在我开始触发“内存警告”后,我看到应用程序中出现了一系列导航问题。我想知道这是否与我在这里提出的问题有关。问题包括:

  1. 以下代码是否正确?
  2. 其他地方需要的其他内存管理代码? (例如dealloc方法? - 我目前没有代码可以解除分配任何按钮)
  3. 在模拟内存警告后使用UINavigationController导航条填充/屏幕流问题可能出现的任何其他提示
  4. 以下代码:

    - (void)viewDidLoad {
        [super viewDidLoad];
        self.navigationItem.rightBarButtonItem = [ 
        [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAction:)] autorelease];   // IS AUTORELEASE HERE CORRECT?
        self.navigationItem.leftBarButtonItem = self.editButtonItem;  
        self.title = @"Views";   
    

    感谢

2 个答案:

答案 0 :(得分:3)

我总是只使用autorelease,我认为它应该做得很好。

答案 1 :(得分:-1)

- (void)viewDidLoad {
    [super viewDidLoad];
    UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAction:)];   // IS AUTORELEASE HERE CORRECT?
    self.navigationItem.rightBarButtonItem = rightBarButton;
[rightBarButton release];
    self.navigationItem.leftBarButtonItem = self.editButtonItem;  
    self.title = @"Views";  
}