可变内存地址属性EXEC_BAD_ACESS

时间:2013-02-12 11:06:51

标签: iphone objective-c pointers nsdate exc-bad-access

我有一个已分配的对象,其属性存储在以下内存位置: Memory status

当我将NSDate属性简单归因于变量时,它会给我一个EXEC_BAD_ACESS。 正如您从第一张图片中看到的那样,只有日期属性和fileDate变量具有不同的地址。

EXEC_BAD_ACESS

我是否制作了与指针相关的错误? 其他2个属性被正确分配给变量,它只发生在NSDate上,所以我可能错过了NSDate的一些细节。

EDIT1

DownloadFile定义: DownloadFile

EDIT2

init函数: enter image description here

EDIT3 日期参数:

date

1 个答案:

答案 0 :(得分:3)

你有没有理由不使用ARC?有很多内存管理错误导致泄漏,而且会导致崩溃。

NSDate *dateFromString = [dateFormatter dateFromString:receivedDate];

返回自动释放的NSDate,以便您再调用其他

[dateFromString autorelease];

你过度释放NSDate因此导致你的崩溃。


[pFile setDate:[[NSDate alloc] init]];

是内存泄漏。通过设置器setDate:将导致pFile在该日期获得+1保留,它应该在dealloc中释放。 [[NSDate alloc] init]调用返回一个带有+1的日期对象,但从未在其他地方发布。

您可以使用

解决此问题
[NSDate date]

或者

[[[NSDate alloc] init] autorelease];

第一个选项是首选