Ну, я думаю, это было задано тысячу раз, но почему-то ответы не работают или не имеют других проблем,...
В любом случае, вот что я "работаю":
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
// set tomorrow (0: today, -1: yesterday)
[comps setDay:0];
NSDate *dateToday = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[comps setDay:-1];
NSDate *dateYesterday = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[comps release];
NSString *todayString = [self.dateFormatter stringFromDate:dateToday] ;
NSString *yesterdayString = [self.dateFormatter stringFromDate:dateYesterday] ;
NSString *refDateString = [self.dateFormatter stringFromDate:info.date];
if ([refDateString isEqualToString:todayString])
{
cell.title.text = @"Today";
} else if ([refDateString isEqualToString:yesterdayString])
{
cell.title.text = @"Yesterday";
} else
{
cell.title.text = [self.dateFormatter stringFromDate:info.date];
}
Теперь к проблеме (задачам):
Это, кажется, очень много кода для сравнения только даты, есть ли более простой способ?
И самый важный вопрос - это выпуск всех объектов. Как я мог предположить, я использую это в UITableViewController. У меня также есть эти строки в моем коде:
//[calendar release];
//[currentDate release];
//[dateToday release];
//[dateYesterday release];
//[todayString release];
//[yesterdayString release];
//[refDateString release];
Проблема в том, что как только я раскомментирую одну из этих строк, мое приложение падает, и я понятия не имею, почему?! Надеюсь, кто-то может просветить меня здесь.
Спасибо большое.