我有一个已分配的对象,其属性存储在以下内存位置:
当我将NSDate
属性简单归因于变量时,它会给我一个EXEC_BAD_ACESS
。
正如您从第一张图片中看到的那样,只有日期属性和fileDate
变量具有不同的地址。
我是否制作了与指针相关的错误?
其他2个属性被正确分配给变量,它只发生在NSDate
上,所以我可能错过了NSDate
的一些细节。
EDIT1
DownloadFile
定义:
EDIT2
init函数:
EDIT3 日期参数:
答案 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];
第一个选项是首选