我有以下问题:

我有一个AppDelegate,在其中添加了navigationController并在其中加载UIViewControllerB。

在B中,我添加一个navigationItem,一个leftBarButtonItem或一个rightBarButtonItem。

我必须在哪里释放这些项目,因为我是在B中分配和初始化它们的。所以,首先我想到了在B的Dealloc-Method中释放self.navigationItem.rightBarButtonItem。

但是,如果我正在分析我的应用程序,分析器会在B的dealloc-method中的发布位置说:


  不正确的对象引用计数递减不正确
  此时调用方拥有。


但是,我对自己做错的事情没什么把握,还是一切正常,这是分析仪的问题吗?

有人可以帮我找出来吗?

问候andi1984

最佳答案

一旦分配并分配给rightBarButtonItem,您就可以像

UIBarButtonItem *rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(showNewEventViewController)];
self.navigationItem.rightBarButtonItem = rightBarButtonItem;
[rightBarButtonItem release];


类似于leftBartButtonItem

self.navigationItem.rightBarButtonItem本身可能会保留,并且知道何时释放该计数。

关于ios - 发布导航项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7262764/

10-10 11:07