UILabel不会正确更新

时间:2013-11-07 08:45:11

标签: objective-c nsdate nscalendar nsdatecomponents

[解决]

我通过更改添加功能来修复它以添加七天而不是尝试添加一周。

感谢您的回答!

[解决]

所以我一直在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];

0 个答案:

没有答案
相关问题