0

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

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

EXEC_BAD_ACCESS

我是否犯了一些与指针相关的错误?其他 2 个属性已正确分配给变量,它只发生在 .NSDate所以我可能遗漏了一些关于NSDate.

编辑1

DownloadFile定义: 下载文件

编辑2

初始化函数: 在此处输入图像描述

EDIT3 日期参数:

日期

4

1 回答 1

3

你有什么理由不使用ARC?那里有很多内存管理错误会导致泄漏,还有一个会导致崩溃。

NSDate *dateFromString = [dateFormatter dateFromString:receivedDate];

返回一个自动释放的NSDate,所以当你然后调用附加的

[dateFromString autorelease];

你过度释放了NSDate你的崩溃。


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

是内存泄漏。通过 settersetDate:将导致pFile在日期上获得 +1 保留,它应该在它的dealloc. 该[[NSDate alloc] init]调用返回一个带有 +1 的日期对象,但随后永远不会在其他地方发布。

您可以使用以下方法解决此问题

[NSDate date]

或者

[[[NSDate alloc] init] autorelease];

第一个选项是首选

于 2013-02-12T11:41:51.030 回答