2

重複の可能性:
Objective-C で曜日を取得するにはどうすればよいですか?

nsstring に接続されている uilabel があります。ただし、nsstring を曜日 (月曜日、火曜日など) に設定しようとしています。ただし、実行するたびに、何も得られません。nsdate から値を取得していないためだと感じています。ただし、私は xcode を初めて使用するので、何が間違っているのかよくわかりません。

-(void)viewDidLoad {
     NSDate *today = [[NSDate alloc] init];
        NSCalendar *gregorian = [[NSCalendar alloc]
                                 initWithCalendarIdentifier:NSGregorianCalendar];

        // Get the weekday component of the current date
        NSDateComponents *weekdayComponents = [gregorian components:NSWeekdayCalendarUnit
                                                           fromDate:today];

       NSString *dateString = weekdayComponents;
        _label.text = dateString;
}
4

2 に答える 2

1

代わりに次のコードを試してください。

-(void)viewDidLoad {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
    [formatter setDateFormat:@"EEEE"];
    _label.text = [formatter stringFromDate:[NSDate date]];
}
于 2012-11-20T03:49:11.137 に答える
0

NSDateComponents主な問題は、オブジェクトをNSString変数に割り当てようとしていることです。

@JShapiro の回答は良いものです。しかし、使用したい場合NSDateComponentsは、これを行うことができます:

NSDateComponents *weekdayComponents = [gregorian components:NSWeekdayCalendarUnit fromDate:[NSDate date]];
NSInteger weekday = [weekdayComponents weekday];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSArray *weekdayNames = [formatter weekdaySymbols];

_label.text = weekdayNames[weekday];
于 2012-11-20T03:56:17.130 に答える