我有一个分配的对象,其属性存储在以下内存位置:
当我将属性简单归因NSDate
于变量时,它给了我一个EXEC_BAD_ACESS
. 正如您从第一张图片中看到的,只有日期属性和fileDate
变量具有不同的地址。
我是否犯了一些与指针相关的错误?其他 2 个属性已正确分配给变量,它只发生在 .NSDate
所以我可能遗漏了一些关于NSDate
.
编辑1
DownloadFile
定义:
编辑2
初始化函数:
EDIT3 日期参数:
我有一个分配的对象,其属性存储在以下内存位置:
当我将属性简单归因NSDate
于变量时,它给了我一个EXEC_BAD_ACESS
. 正如您从第一张图片中看到的,只有日期属性和fileDate
变量具有不同的地址。
我是否犯了一些与指针相关的错误?其他 2 个属性已正确分配给变量,它只发生在 .NSDate
所以我可能遗漏了一些关于NSDate
.
编辑1
DownloadFile
定义:
编辑2
初始化函数:
EDIT3 日期参数:
你有什么理由不使用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];
第一个选项是首选