我将NSDate添加为带有属性的指针,每次卸载视图时,它都会与EXC_BAD_ACCESS崩溃。我正在做(不发布完整代码):
NSDate *scheduledDate;
@property (nonatomic, retain) NSDate *scheduledDate;
@synthesize scheduledDate;
- (void)dealloc {
[super dealloc];
[asset release];
[passedDate release];
[eventDate release];
[eventName release];
}
我没有用指针做任何其他事情,但我仍然得到EXC_BAD_ACCESS。为什么会这样?是否有不同的方法为NSDate设置属性?
SORRY:
我修复了我的问题代码中的错误,它只是一个复制和粘贴问题,而不是解决我的问题,它仍然存在。
答案 0 :(得分:4)
你在dealloc实现发布之前调用[super dealloc]。这意味着[scheduledDate release]释放了一些非空闲内存(不再是nil)。
具体来说,更改顺序,以便[super dealloc]为最后一个:
- (void)dealloc {
[asset release];
[passedDate release];
[eventDate release];
[eventName release];
[super dealloc];
}
答案 1 :(得分:1)
您的代码看起来不一致。 @property声明应该是“NSDate scheduledDate”,而不是“NSString ...”。
答案 2 :(得分:0)
如果您未使用@property (nonatomic, retain) NSDate *scheduledDate;
,则无需合成scheduledDate
。
另外,您如何确定scheduledDate
的价值? 发布您正在使用的代码。
此外,发布您的应用生成的崩溃日志。
答案 3 :(得分:0)
您的@property (nonatomic, retain)
适用于“passDate”,而非“scheduledDate”。由于“{Date}”未被@property (nonatomic, retain)
实例化并保留,因此尝试释放它正试图释放尚未创建的内容(它未被合成为属性)。