好的,所以我得到了这个名为 event 的类。
它有一个名为 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) 的释放被忽略
我在这里做错了什么?
如果我不发布 date1 和 date2 我不会收到错误,但该方法返回 0..
如果我改为在单元格配置方法中执行 yearsSinceEvent 代码,并且不发布日期 1 和日期 2 它可以工作..
我该怎么做?