发布navigationItem

时间:2011-08-31 20:06:30

标签: ios code-analysis navigationcontroller navigationitem

我有以下问题:

我有一个AppDelegate,我在那里添加一个navigationController并在其中加载UIViewController B.

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

我必须在哪里发布这些项目,因为我在B中分配并初始化它们。所以在第一次我考虑在Dealloc-Method of B中发布self.navigationItem.rightBarButtonItem。

但是,如果我正在分析我的应用程序,那么分析器会在B的dealloc方法的发布位置说:

  

对象的引用计数的不正确减少   此时由来电者拥有。

但是,我没有说明我做错了什么,或者一切都好,这是分析仪问题?

有人可以帮我找出来吗?

Greets andi1984

1 个答案:

答案 0 :(得分:1)

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

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

与leftBartButtonItem类似

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