我有一些代码可以使用日期进行操作。为了看它是否可行,我为OSX控制台编写了一个非常简单的程序。它工作正常!但是,我想开始创建一个应用程序,所以我在基于视图的应用程序中的函数中使用了相同的代码。但是,我不断收到错误消息:“没有已知的类方法dateWithFormat。” 任何帮助将不胜感激!
-(id)calc:(int)m with:(int)d andWith:(int)y {
NSDateFormatter *formatter = [NSDateFormatter new];
NSDate *date1 =[formatter setDateFormat:[NSString stringWithFormat:@"%i-%i-%i 00:00:00 +0000",m,d,y]];
NSDate *date2 = [NSDate date];
NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1];
int numberOfDays = secondsBetween/86400;
}
答案 0 :(得分:3)
首先:在您的代码段中,您不使用+dateWithFormat: (NSDate)
,而是使用+dateWithString: (NSDate)
。错字?请重新检查一下。 Mac OS和iOS上不存在+dateWithFormat: (NSDate)
。
第二:iOS上没有-dateWithString: (NSDate)
。这是一种方便的方法。使用date formatter将字符串转换为日期。 (这也是Mac OS上更好的方式。)
第三,更新到您的评论: 你的代码不应该编译:
NSDate *date1 = [NSDate dateWithString:@"%i-%i-%i 00:00:00 +0000",1,2,3];
Too many arguments to method call, expected 1, have 4
可能你想做那样的事情:
NSDate *date1 = [NSDate dateWithString:[NSString stringWithFormat:@"%i-%i-%i 00:00:00 +0000",1,2,3]];
如果您想在日期的组件上创建具有特定值的日期,请查看NSDatComponents。