iphone - super dealloc EXC_BAD_ACCESS 错误
<p><p>在分析我们的项目时,Xcode 在自定义 UIBarButtonItem 处带有一个 posibe 泄漏通知。
我修复了泄漏,但是在第二次加载 View 时, 给出了 EXC_BAD_ACCESS 错误。</p>
<p>从 UIBarButtonItem 中移除自动释放(因此返回警告):</p>
<pre><code>self.navigationItem.rightBarButtonItem = [[ initWithCustomView:toolbar] autorelease];
</code></pre>
<p>在重新加载屏幕时没有问题。</p>
<p>自定义 UIBarButtonItem 和 dealloc 代码:</p>
<pre><code>- (void)viewDidLoad
{
;
// create a toolbar to have the buttons at the right side of the navigationBar
UIToolbar* toolbar = [ initWithFrame:CGRectMake(0, 0, 150, 44.01)];
toolbar.tintColor = ;
;
// create the array to hold the buttons, which then gets added to the toolbar
NSMutableArray* buttons = [ initWithCapacity:4];
// Create a comments button
propertiesButton = [
initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(properties)];
;
;
// Create a comments button
commentaryButton = [
initWithBarButtonSystemItem:UIBarButtonSystemItemCompose target:self action:@selector(comments)];
;
;
// create a versions button
versionsButton = [
initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(versions)];
;
;
// create a save button
downloadButton = [
initWithBarButtonSystemItem:UIBarButtonSystemItemOrganize target:nil action:@selector(download)];
;
;
// stick the buttons in the toolbar
;
;
// and put the toolbar in the nav bar
self.navigationItem.rightBarButtonItem = [[ initWithCustomView:toolbar] autorelease];
;
}
- (void)dealloc
{
;
;
;
;
;
;
;
}
</code></pre>
<p>使用 NSZombieEnabled 我得到了</p>
<pre><code>'2011-08-01 10:30:36.571 ProjectName *** -: message sent to deallocated instance 0x1fb330'
</code></pre>
<p>我们不确定如何解决问题。</p>
<p>提前谢谢你。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您正在发布 propertiesButton、downloadButton、versionsButton、commentaryButton 两次。第一次在 <code>viewDidLoad</code> 中,再次在 <code>dealloc</code> 中。</p>
<p>您不必在 <code>dealloc</code> 中释放它们,因为您已经在 <code>viewDidLoad</code> 中释放了它们。</p></p>
<p style="font-size: 20px;">关于iphone - super dealloc EXC_BAD_ACCESS 错误,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/6909918/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/6909918/
</a>
</p>
页:
[1]