Я пытаюсь реализовать метод, который будет увеличивать переменную экземпляра NSDate на один месяц. У меня проблемы с управлением памятью с этим. (Я использую MallocScribble и NSZombieEnabled и получаю сообщение: - [копия CFDate]: сообщение отправлено освобожденному экземпляру 0x3d9dfa0)
Мой вопрос сводится к тому, как лучше всего увеличить дату? Вот мой код:
NSDate *displayedMonthYear;
....
-(IBAction) nextMonth:(id)sender {
NSCalendar *calendar= [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
[dateComponents setMonth:1];
NSDate *prevDate = [displayedMonthYear copy];
[displayedMonthYear release];
displayedMonthYear = [calendar dateByAddingComponents:dateComponents toDate:prevDate options:0];
[prevDate release];
[dateComponents release];
[calendar release];
}
Первоначально я не делал бит с копией prevDate, но делал что-то вроде:
displayedMonthYear = [calendar dateByAddingComponents:dateComponents toDate:displayedMonthYear options:0];
Однако меня беспокоило, что такой подход может привести к утечке памяти. Так что я думаю, что это больше проблема управления памятью, чем проблема с датой, но любая помощь будет отличной -