Ios 从Swift转换到Objective C,为什么这个代码只工作一次?

Ios 从Swift转换到Objective C,为什么这个代码只工作一次?,ios,objective-c,swift,xcode,Ios,Objective C,Swift,Xcode,我这里有一个非常简单的objective c代码,它从日期选择器中获取所选日期,并将其作为变量(_labellll)附加到标签上。它只是第一次起作用。如果我尝试另一次约会,它就不会再起作用了。我也有swift的工作代码,它工作得很好,但我需要用目标C正确地编写它。有人能帮忙吗?谢谢 目标C代码: - (IBAction)didDateChamge:(id)sender { NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] in

我这里有一个非常简单的objective c代码,它从日期选择器中获取所选日期,并将其作为变量(_labellll)附加到标签上。它只是第一次起作用。如果我尝试另一次约会,它就不会再起作用了。我也有swift的工作代码,它工作得很好,但我需要用目标C正确地编写它。有人能帮忙吗?谢谢

目标C代码:

- (IBAction)didDateChamge:(id)sender {
    NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"EEE"];
    NSString *dayOfTheWeek = [dateFormatter stringFromDate:[NSDate date]];
    [_labelllll setText:[NSString stringWithFormat:@"%@",dayOfTheWeek]];

}
Swift代码: 试试这个

- (IBAction)didDateChamge:(UIDatePicker *)sender {
    NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"EEE"];
    NSString *dayOfTheWeek = [dateFormatter stringFromDate:sender.date];
    [_labelllll setText:[NSString stringWithFormat:@"%@",dayOfTheWeek]];

}

您需要更改方法签名并使用sender.date获取所选日期。

请查看您的代码
sender.date
!=
[NSDate date]
您正在将不同的值传递给
stringFromDate:
-在Objective-C中,您正在发送
[NSDate date]
,而在Swift中,您每次通过[NSDate date]时都在发送
发送者.date
。将-(iAction)didDateChamge:(id)发送方替换为-(iAction)didDateChamge:(UIDatePicker*)发送方并更改此行NSString*DayOfWeek=[dateFormatter stringFromDate:[NSDate date date]];到NSString*DayOfWeek=[dateFormatter stringFromDate:sender.date];它应该是
(UIDatePicker*)
@AliRJ当使用独立本地工作日时,您应该使用
“cccc”
而不是
“EEEE”