NSDate dateFromString устарел?

Я пытаюсь использовать метод NSDate dateFromString, но получаю предупреждение, и это приводит к сбою приложения. Код выглядит так:

NSString *pickerDate = [NSString stringWithFormat:@"%@", timeSelector.date];
NSDate *defaultDate = [NSDate dateFromString:pickerDate];

Предупреждение:

'NSDate' may not respond to '+dateFromString'.

Похоже, что этот метод устарел (в разгар обновления с XCode 2 до 3.

Какой альтернативный метод я могу использовать для создания даты из строки?


person Ian McIntyre Silber    schedule 04.08.2010    source источник
comment
Я предполагаю, что timeSelector является UIDatePicker, есть ли причина, по которой вы снова конвертируете свойство date в строку и обратно в дату?   -  person dreamlax    schedule 04.08.2010
comment
Это может быть более эффективным, просто не знаю, какой будет код :/ Не могли бы вы привести мне пример?   -  person Ian McIntyre Silber    schedule 04.08.2010
comment
Я имею в виду, вы можете сделать только NSDate *defaultDate = timeSelector.date;?   -  person dreamlax    schedule 04.08.2010


Ответы (3)


NSDateFormatter — это предполагаемый способ получить NSDate от NSString.

Самое простое использование выглядит примерно так:

NSString *dateString = @"3-Aug-10";

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"d-MMM-yy";

NSDate *date = [dateFormatter dateFromString:dateString];
person Nick Forge    schedule 04.08.2010

У меня была такая же проблема. Я изменил формат даты с @"YYYY/M/d H:m:s" на @"YYYY/MM/dd HH:mm:ss" следующим образом. Тогда это работает на моем iPhone 4. (Xcode 4.5 для iOS 6.)


NSDateFormatter *dateFormatter1;
NSString *dateStr1=@"";
NSDate *gantanDate1;

dateFormatter1 = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter1 setLocale:[NSLocale systemLocale]]; 
[dateFormatter1 setTimeZone:[NSTimeZone systemTimeZone]]; 
dateFormatter1.dateFormat=@"YYYY/MM/dd HH:mm:ss";
dateStr1=@"2012/1/1 00:00:00"];
//  in his case,   dateStr1=pickerDate;  
gantanDate1 = [dateFormatter1 dateFromString:dateStr1];
person shrinetree    schedule 26.09.2012

Привет, Зильбер, все говорят одно и то же, чтобы преобразовать дату строки в объект даты. Попробуйте, я думаю, вы использовали два средства форматирования даты в двух местах, где вы сохраняете дату в строку и получаете дату из строки. правильно попробуйте использовать те же средства форматирования даты в обоих местах. Это решит вашу проблему.

person SURESH SANKE    schedule 29.08.2012