Итак, я получил этот класс, называемый событием.
У него есть свойство, называемое eventDate, которое является NSDate. Я сделал метод, чтобы вернуть, сколько лет прошло с даты события:
- (double)yearsSinceEvent {
double years;
// Get the system calendar
NSCalendar *sysCalendar = [NSCalendar currentCalendar];
// Create the NSDates
NSDate *date1 = self.eventDate;
NSDate *date2 = [NSDate date];
// Get conversion to months, days, hours, minutes
unsigned int unitFlags = NSYearCalendarUnit;
NSDateComponents *conversionInfo = [sysCalendar components:unitFlags fromDate:date1 toDate:date2 options:0];
years = [conversionInfo year];
[date1 release];
[date2 release];
return years;
}
при настройке ячеек таблицы я делаю:
cell.textLabel.text = [[events objectAtIndex:indexPath.row] name];
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d year's ago", [events objectAtIndex:indexPath.row] yearsSinceEvent]];
Но это выдает эту ошибку:
*** __NSAutoreleaseFreedObject(): освобождение ранее освобожденного объекта (0x595bda0) игнорируется
Что я здесь делаю неправильно?
Если я не выпускаю дату1 и дату2, я не получаю ошибку, но метод возвращает 0..
Если вместо этого я сделаю код yearsSinceEvent в методе конфигурации ячейки и не выпущу дату 1 и дату 2, это сработает.
Как мне это сделать?