Хорошо, поэтому я получил это событие, называемое clas.Ошибка при выпуске NSdate из [компонентов NSDateComponents: fromDate: toDate: options:]
У этого объекта есть свойство 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;
}
при настройке моего Tableview клетки я сделать:
cell.textLabel.text = [[events objectAtIndex:indexPath.row] name];
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d year's ago", [events objectAtIndex:indexPath.row] yearsSinceEvent]];
Но это бросает эту ошибку:
** * __NSAutoreleaseFreedObject(): освобождение ранее освобожденного объекта (0x595bda0) игнорируется
Что я здесь делаю неправильно?
Если я не выпустить date1 и date2 я не получаю ошибку, но этот метод возвращает 0 ..
Если я сделать код yearsSinceEvent в методе конфигурации ячейки вместо этого, и DonT даты выпуска 1 и 2 Даты оно работ.
Как мне это сделать?
Спасибо, ребята! Я чувствую себя глупо. Должен был это видеть. скопировал код и изменил его. Я не уверен, почему я получаю 0 назад при удалении релизов. Я думаю, что я сохраняю значение NSDate .. Я проверю, когда вернусь домой. – LarsJK
Это сложно concept :) – willcodejavaforfood
Причина, по которой метод возвращал 0, состоял в том, что [год преобразования] возвращает NSInteger. Я изменил свой двойник на NSIntegers, и он отлично работал! – LarsJK