我开始在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应用程序,我创建了一个名为VisualizzaClasse的Objective-C类。 VisualizzaClasse.h:
#import <Foundation/Foundation.h>
@interface VisualizzaClasse : NSObject
{
IBOutlet NSDatePicker *datePicker;
IBOutlet NSTextView *textView;}
- (IBAction)mostraRisultato:(id)sender;
@end
VisualizzaClasse.m:
#import "VisualizzaClasse.h"
@implementation VisualizzaClasse
- (IBAction)mostraRisultato:(id)sender;
{
//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];
[textView insertText:[NSString stringWithFormat:@"%@ \n", risultato]];
}
@end
接口由DatePicker,TextView和按钮组成。我不能使DatePicker替换dateFromString。错误是:不兼容的指针类型将'NSDatePicker _strong *'发送到'NSString *'类型的参数,在行:
NSDate * dataInizio = [formatoData dateFromString:datePicker];
任何人都可以帮助我吗?
答案 0 :(得分:0)
dateFromString方法需要NSString,您的参数类型是NSDatePicker
使用NSDate * dateVariable = datePicker.date;而是dateFromString,如果你需要将它转换为NSDate
中提到的格式化程序答案 1 :(得分:0)
我假设您已经在InterfaceBuilder中正确连接了NSDatePicker,因此它连接到DatePicker。
如果是这样,您应该能够分配如下:
NSDate * unformattedDate = [ datePicker dateValue ];
然后像以前一样进行格式化,使用unformattedDate
作为格式化程序的输入。