2010-08-04 3 views
3

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

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

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

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

Оказывается, что метод является устаревшим (в разгар обновления с XCode 2 до 3.

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

+0

Я предполагаю, что 'timeSelector' является' UIDatePicker', есть причина, вы преобразование 'date' недвижимости к строке и вернуться к дате снова? – dreamlax

+0

Это может быть более эффективным, просто не знаю, что такое код:/Не могли бы вы дать мне пример? –

+0

Что я имею в виду, можете ли вы сделать только «NSDate» defaultDate = timeSelector.date; '? – dreamlax

ответ

13

NSDateFormatter - это предназначен для вас, чтобы получить NSDate от NSString.

Самое основное использование что-то вроде этого:

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

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

NSDate *date = [dateFormatter dateFromString:dateString]; 
0

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

2

У меня была такая же проблема. Я изменил датуФормат с @ "ГГГГ/М/Д Н: м: с" на @ "ГГГГ/ММ/ДД ЧЧ: мм: ss" следующим образом. Затем он работает на моем iPhone 4. (Xcode 4.5 для прошивки 6.)


NSDateFormatter *dateFormatter1; 
NSString *[email protected]""; 
NSDate *gantanDate1; 

dateFormatter1 = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter1 setLocale:[NSLocale systemLocale]]; 
[dateFormatter1 setTimeZone:[NSTimeZone systemTimeZone]]; 
[email protected]"YYYY/MM/dd HH:mm:ss"; 
[email protected]"2012/1/1 00:00:00"]; 
// in his case, dateStr1=pickerDate; 
gantanDate1 = [dateFormatter1 dateFromString:dateStr1]; 
Смежные вопросы