使用NSDate作为属性给我EXC_BAD_ACCESS,为什么?

时间:2011-02-01 22:02:03

标签: iphone objective-c ios nsdate

我将NSDate添加为带有属性的指针,每次卸载视图时,它都会与EXC_BAD_ACCESS崩溃。我正在做(不发布完整代码):

·H

NSDate *scheduledDate;

@property (nonatomic, retain) NSDate *scheduledDate;

的.m

@synthesize scheduledDate;

    - (void)dealloc {
    [super dealloc];
    [asset release];
    [passedDate release];
    [eventDate release];
    [eventName release];
}

我没有用指针做任何其他事情,但我仍然得到EXC_BAD_ACCESS。为什么会这样?是否有不同的方法为NSDate设置属性?

SORRY:

我修复了我的问题代码中的错误,它只是一个复制和粘贴问题,而不是解决我的问题,它仍然存在。

4 个答案:

答案 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)实例化并保留,因此尝试释放它正试图释放尚未创建的内容(它未被合成为属性)。