0

我有以下问题:

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

在 BI 中添加一个 navigationItem、一个 leftBarButtonItem 或一个 rightBarButtonItem。

我必须在哪里释放这些项目,因为我在B中分配和初始化它们。所以一开始我考虑在B的Dealloc-Method中释放self.navigationItem.rightBarButtonItem。

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

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

但我不明白我做错了什么,或者一切正常,这是分析仪的问题?

有人可以帮我找出来吗?

问候 andi1984

4

1 回答 1

1

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

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

与 leftBartButtonItem 类似

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

于 2011-08-31T20:14:57.970 回答