[解决]
我通过更改添加功能来修复它以添加七天而不是尝试添加一周。
感谢您的回答!
[解决]
所以我一直在xCode上做一些培训并编写了一个应用程序,它从NSCalendar中获取信息以显示日期,更重要的是这些日期属于哪个星期。
我已经按照我想要的方式工作,除了周标签。我的所有标签都正确更新,但周数不会更新。
这是我的工作更新按钮的代码
-(IBAction)minusOneYear{
NSCalendar *currCal = [[NSCalendar currentCalendar] retain];
NSDateComponents *components = [[currCal components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSWeekCalendarUnit|NSWeekdayCalendarUnit fromDate:currentDate] retain];
components.year --;
[currentDate release];
currentDate = [[currCal dateFromComponents:components ] retain];
[self updateLabels];
}
这里是不能正确更新的周组件的代码
-(IBAction)minusOneWeek{
NSCalendar *currCal = [[NSCalendar currentCalendar] retain];
NSDateComponents *components = [[currCal components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSWeekCalendarUnit|NSWeekdayCalendarUnit|NSWeekOfYearCalendarUnit fromDate:currentDate] retain];
components.week --;
[currentDate release];
currentDate = [[currCal dateFromComponents:components ] retain];
NSLog(@"%ld", (long)components.week);
[self updateLabels];
}
有关为何发生这种情况的任何建议?
编辑:这是我的updateLabels方法
NSDateFormatter *dayNameFormatter = [[NSDateFormatter alloc] init];
[dayNameFormatter setDateFormat:@"EEEE"];
dayNames.text = [dayNameFormatter stringFromDate:currentDate];
[dayNameFormatter release];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd"];
day.text = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:currentDate]];
[dateFormatter release];
NSDateFormatter *monthFormatter = [[NSDateFormatter alloc] init];
[monthFormatter setDateFormat:@"MMMM"];
month.text = [NSString stringWithFormat:@"%@",[monthFormatter stringFromDate:currentDate]];
[monthFormatter release];
NSDateFormatter *yearFormatter = [[NSDateFormatter alloc] init];
[yearFormatter setDateFormat:@"YYYY"];
year.text = [NSString stringWithFormat:@"%@",[yearFormatter stringFromDate:currentDate]];
[yearFormatter release];
NSDateFormatter *weekFormatter = [[NSDateFormatter alloc] init];
[weekFormatter setDateFormat:@"ww"];
week.text = [NSString stringWithFormat:@"%@",[weekFormatter stringFromDate:currentDate]];
[weekFormatter release];