我使用下面的代碼&其工作在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