如果過去(對於鬧鐘),我想添加一天到NSDate對象。但是,如果我只是添加60 * 60 * 24秒,我遇到了一個問題。它像通常所需的那樣增加24小時,但在這種情況下,一天等於23小時。我該如何解決?這是下面的代碼:當一天不等於24小時時向NSDate添加一天 - iOS
while ([alarmTime compare:[[NSDate alloc] init]] == NSOrderedAscending) {
alarmTime = [alarmTime dateByAddingTimeInterval:(60*60*24)]; //if in the past add a day
NSLog(@"alarm %@ is in the past, adding a day", alarmTime);
}
22:19:59.506: alarm 03/12/2011 12:00:00 AM is in the past, adding a day
22:19:59.506: alarm 03/13/2011 12:00:00 AM is in the past, adding a day
22:19:59.507: alarm 03/14/2011 01:00:00 AM is in the past, adding a day
22:19:59.507: alarm 03/15/2011 01:00:00 AM is in the past, adding a day
不直接關係到你的問題,但你有一個嚴重的內存泄露那裏。使用[NSDate date]創建一個NSDate變量,並將其用於比較。 – jrturton
它也困擾我。但我想用ARC不會再有泄漏了。這將需要一些習慣... – nschum
@nschum - 即使它不是泄漏,這是浪費資源。 – jrturton