Xcode 从命令行工具到cocoa应用程序

Xcode 从命令行工具到cocoa应用程序,xcode,datepicker,nsdate,nsdateformatter,Xcode,Datepicker,Nsdate,Nsdateformatter,我开始探索objective-c编程,并为命令行工具编写了几行代码。它可以工作,但现在我正试图在Cocoa应用程序中重写它,我遇到了一些问题。这是单线刀具的工作代码: //Formattazione delle date preimpostate NSDateFormatter *formatoData = [[NSDateFormatter alloc] init]; [formatoData setDateFormat:@"dd/MM/yyyy"]; //Defi

我开始探索objective-c编程,并为命令行工具编写了几行代码。它可以工作,但现在我正试图在Cocoa应用程序中重写它,我遇到了一些问题。这是单线刀具的工作代码:

 //Formattazione delle date preimpostate
    NSDateFormatter *formatoData = [[NSDateFormatter alloc] init];
    [formatoData setDateFormat:@"dd/MM/yyyy"];

    //Definizione della data di inizio e della data di fine
    NSDate * dataInizio = [formatoData dateFromString:datePicker];

    //Risultato
    NSString *risultato=[dataInizio descriptionWithCalendarFormat:@"%w" timeZone:nil locale:nil];

    //Output
    NSLog(@"Il giorno impostato è %@", risultato);
为了创建Cocoa应用程序,我创建了一个名为VisualizaClasse的objective-C类。 VisualizaClasse.h:

#import <Foundation/Foundation.h>

@interface VisualizzaClasse : NSObject
{
    IBOutlet NSDatePicker *datePicker;
    IBOutlet NSTextView *textView;}
- (IBAction)mostraRisultato:(id)sender;

@end
接口由日期选择器、TextView和按钮组成。我无法使日期选择器替换dateFromString。错误是:不兼容的指针类型将“NSDatePicker”发送到“NSString*”类型的参数,在第行:

NSDate * dataInizio = [formatoData dateFromString:datePicker];

有人能帮我吗?

dateFromString方法需要NSString,您的参数类型是NSDatePicker

使用NSDate*dateVariable=datePicker.date;如果需要将dateFromString转换为NSDate,请将其替换为dateFromString


一旦有了NSDate,就可以使用

中提到的格式化程序。我假设您在InterfaceBuilder中正确连接了NSDatePicker,这样它就可以连接到DatePicker

如果是,您应该能够分配如下内容:

NSDate * unformattedDate = [ datePicker dateValue ];

然后像以前一样进行格式化,使用
unformattedate
作为格式化程序的输入。

事实上,如果用@“07/04/2012”替换dataPicker,它可以工作,但我想使用datePicker来设置所需的日期。因此,您可以使用datePicker.date代替dateFromString callI尝试的日期:NSDate*Datainization=[formatoData datePicker.date];但不起作用。首先您有NSDate,然后在NSDate上使用格式化程序,如中所述
NSDate * unformattedDate = [ datePicker dateValue ];