当前位置:  开发笔记 > 编程语言 > 正文

解除分配变量时获取段错误(EXC_BAD_ACCESS)

如何解决《解除分配变量时获取段错误(EXC_BAD_ACCESS)》经验,为你挑选了1个好方法。

好吧,我知道这个错误主要来自发送方法调用或尝试访问已经解除分配的变量.

这是问题所在:

.h
@interface TimeEntry : NSObject  {

NSDate *from;
NSDate *to;

NSString *information;


}

@property (nonatomic, retain) NSDate *from;
@property (nonatomic, retain) NSDate *to;

@property (nonatomic, copy) NSString *information;

@end

而且我的班级是dealloc.

-(void)dealloc{

    [super dealloc];    
    [to release];
    [from release];
    [information release];

}

当我收到EXC_BAD_ACCESS错误时,这是​​追溯的事情 替代文字

所以我正在向已经解除分配的对象发送消息?

所以我打开NSZombie,这停止了我的崩溃.它并没有像我希望的那样给我一些可爱的崩溃报告.相反,它只是让程序崩溃.

在上面的dealloc方法中,如果我注释掉[发布]和[从发布]应用程序不会崩溃.如果我只注释其中一个......它不会崩溃.在调试窗口中往返有不同的内存地址.

记忆管理怎么这么难!!!!

有人提出任何线索吗?

谢谢,



1> Terry Wilcox..:

在释放变量之后发送[super dealloc]消息,而不是之前.[super dealloc]应该是你在dealloc方法中做的最后一件事.


[super dealloc]释放对象占用的内存,包括指向变量的指针.
推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有