【发布时间】:2010-10-08 10:50:55
【问题描述】:
好的,我了解此错误主要来自发送方法调用或尝试访问已被释放的变量。
问题来了:
.h
@interface TimeEntry : NSObject <NSCopying, NSCoding> {
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 方法中,如果我注释掉 [to release] 和 [from release] 应用程序不会崩溃。如果我只注释掉其中一个.. 它不会崩溃。在调试窗口中往返有不同的内存地址。
内存管理怎么这么难!!!
有什么线索吗?
谢谢,
丹
【问题讨论】:
标签: iphone objective-c cocoa-touch memory-management