在ios中显示最近5天的日期

在ios中显示最近5天的日期,ios,objective-c,nsdate,Ios,Objective C,Nsdate,我正在尝试显示最后5天的日期。但它只显示昨天的最后一天。我使用以下代码来显示它 .h文件: NSInteger getDist; NSString *lastdate; NSDateFormatter *dateFormatter; NSDate *sevenDaysAgo; NSDate *dateAfterDecrement; NSString *dateString; int i; viewDidLoad: NSDate *currDate = [NSDate date]; dateFo

我正在尝试显示最后5天的日期。但它只显示昨天的最后一天。我使用以下代码来显示它

.h文件:

NSInteger getDist;
NSString *lastdate;
NSDateFormatter *dateFormatter;
NSDate *sevenDaysAgo;
NSDate *dateAfterDecrement;
NSString *dateString;
int i;
viewDidLoad:

NSDate *currDate = [NSDate date];
dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd.MM.YY"];
dateString = [dateFormatter stringFromDate:currDate];
_currentDate.text=dateString;

-(void)display
{
  for(i=1;i<=5;i++)
  {
    lastdate = _currentDate.text;
    [dateFormatter setDateFormat:@"dd.MM.YY"];
    sevenDaysAgo = [dateFormatter dateFromString:lastdate];
    dateAfterDecrement=[sevenDaysAgo initWithTimeIntervalSinceNow:-
    (24*60*60)];
    }
    _currentDate.text =  [dateFormatter stringFromDate:dateAfterDecrement];

}

请建议我。

您可以通过这种方式将当前日期减少到您想要的天数

    NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar]; 
    NSDateComponents *datecomponents = [calendar components:NSYearCalendarUnit
                        | NSMonthCalendarUnit | NSDayCalendarUnit
                        fromDate:[NSDate date]];
             for (int i = 0; i < 5; ++i) {
              NSDate *date = [calendar dateFromComponents:datecomponents];
              NSLog(@"%@",date);
              --datecomponents.day;
             }

下面是如何显示今天的日期,然后是最后4天的日期

NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM dd, yyyy"];
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

int DAY_TO_SECONDS = -60*60*24;
for (int n=0; n<5; n++)
{
    NSDate* date = [[NSDate date] dateByAddingTimeInterval:DAY_TO_SECONDS*n];
    NSString* dateString = [formatter stringFromDate:date];

    NSLog(@"%@", dateString);
}

假设currentDate是@property,请使用self.currentDate,而不是_currentDate。使用_currentDate不是错误,但使用self.currentDate是当前的最佳实践。它还允许在属性上设置断点并在访问时中断。它还允许将来将属性更改为返回计算值的方法。它仍然只显示昨天的日期。For循环将运行5次并显示最后一个循环值,即;i=4值。因此,每次尝试保存从每个for循环获取的值时,它只显示昨天的值…因此..\u currentDate.text显示的是最后一个for循环值代码无法编译。除此之外,没有变量声明:dateFormatter、dateString、i、last date、sevenDaysAgo、dateAfterDecrement。另外,sevenDaysAgo initWithTimeIntervalSinceNow:不正确,这是用于alloc的方法。现在选择器没有已知的类方法。对不起,我自己添加了这个。我已更改代码,使其成为[NSDate]。
2015-02-23 13:18:30.657 ClientInfo[1418:557691] Feb 23, 2015
2015-02-23 13:18:30.658 ClientInfo[1418:557691] Feb 22, 2015
2015-02-23 13:18:30.658 ClientInfo[1418:557691] Feb 21, 2015
2015-02-23 13:18:30.658 ClientInfo[1418:557691] Feb 20, 2015
2015-02-23 13:18:30.658 ClientInfo[1418:557691] Feb 19, 2015