我想显示过去5天的日期。但它只显示上次日期(昨天)。我正在使用下面的代码来显示它。显示最近5天的日期在ios
.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];
}
请给我建议。
假设'currentDate'是@property使用'self.currentDate',不'_currentDate'。使用'_currentDate'不是一个错误,但是使用'self.currentDate'是当前的最佳实践。它还允许在属性上设置断点并中断访问。它还允许将该属性在将来更改为返回计算值的方法。 – zaph 2015-02-23 12:14:27
它仍然只显示昨天的日期。 – vijay 2015-02-23 12:18:38
For循环将运行5次并显示最后一个循环值,即:i = 4的值。所以它每次只显示昨天的值,试图保存从每个循环获得的值...所以.._ currentDate.text显示最后一个循环值 – Vidhyanand 2015-02-23 12:24:33