Я использую следующий код & его прекрасно работает отлично в 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 было ноль.
Причина заключается в том:
- (id)init
метод NSDateFormatter доступен только в iPhone OS 2.0 через iPhone OS 3.2. Это устарело в iPhone OS 4.0.
Какое решение для этого? Как запустить NSDateFormater? Какая альтернатива?
Мы можем преобразовать NSString в NSDate, используя NSDateComponents как: 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
Но, что теперь делать с NSDateFormatter? Не можем ли мы использовать его с IPhone OS 4.0? если да, то как? – Rambo
просто устареет, это устарело, это не значит, что он не сработает - он просто не может работать в будущем. Если вы __NSLog (@ "% @", dateFormatter); __ после того, как вы вызвали init, что вы получаете? Если вы не получите ничто, это предупреждение не имеет ничего общего с вашей проблемой. – deanWombourne