NSDate问题

Xco*_*der 3 iphone objective-c nsdate

我在下面的代码中有以下代码,用于将名为"今天"的类var向前或向后更改一天.它会工作一次,然后崩溃.无论我按下左按钮还是右按钮,它都会做同样的事情.我究竟做错了什么?

var今天是一个类var,发起为..今天= [NSDate date]

这是崩溃的方法:

 (IBAction)changeDateByOne:(id)sender{

NSDate *newDay;
NSDate *currentDay = today;

NSTimeInterval secondsPerDay = 24 * 60 * 60;

if(sender == leftButton){
     newDay = [currentDay addTimeInterval:-secondsPerDay];

}else if(sender == rightButton) { 
     newDay = [currentDay addTimeInterval: secondsPerDay];


}

today = newDay;
Run Code Online (Sandbox Code Playgroud)

}

Nil*_*ect 9

您不仅需要保留创建的日期,还需要释放"今天"所持有的现有值,否则您将泄漏旧的引用.

初始化实例时,请使用:

today = [[NSDate date] retain];
Run Code Online (Sandbox Code Playgroud)

我会将最后一行更改为:

[today release];
today = [newDay retain];
Run Code Online (Sandbox Code Playgroud)

最后,在你的dealloc方法中,添加:

[today release];
Run Code Online (Sandbox Code Playgroud)

在调用[super dealloc]之前;