我使用下面的代码&其工作在iPhone OS 3.2对于iPhone OS 4.0“dateFromString” NSDateFormatter的方法返回零
+(NSDate *)NSDateFromString:(NSString *)dateString
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *dateObj=[dateFormatter dateFromString:dateString];
[dateFormatter release], dateFormatter=nil;
return dateObj;
}
完全正常,但当我试图使用相同的代码我的iPhone OS 4.0 dateObj是零。
其原因是:
为NSDateFormatter
- (id)init
方法通过iPhone OS 3.2是仅可用于iPhone OS 2.0。 它在iPhone OS 4.0中已弃用。
现在有什么解决方案呢?如何启动NSDateFormater?有什么选择?
我们可以使用NSDateComponents将NSString转换为NSDate,如下所示: NSDateComponents * comps = [[NSDateComponents alloc] init]; [comps setDay:6]; [comps setMonth:5]; [comps setYear:2004]; NSCalendar * gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDate * date = [gregorian dateFromComponents:comps]; [comps release]; – Rambo 2010-07-09 11:54:23
但是,现在如何处理NSDateFormatter?我们不能在IPhone OS 4.0中使用它吗?如果是,那么如何? – Rambo 2010-07-09 11:55:35
只是因为它被弃用并不意味着它不会工作 - 它可能在未来不会工作。如果你__NSLog(@“%@”,dateFormatter); __你调用init之后你会得到什么?如果你没有得到零,这个警告是无关你的问题。 – deanWombourne 2010-07-09 12:45:45