2010-02-18 2 views
0

Я пытаюсь выполнить некоторые основные операции с датами на iPhone. Я хочу взять строку типа «2010-02-19» и превратить ее в строку типа «Пятница, 19 февраля». Строки, которые я буду получать, всегда будут в 2010-02-19. Прямо сейчас, я бегу следующий код, который работает, но он выдаст предупреждение, что говорит «NSDate не может ответить + dateWithNaturalLanguageString:»Проблема инициализации NSDate на iPhone

NSDate *date = [NSDate dateWithNaturalLanguageString:scheduled]; 
NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease]; 
[df setDateFormat:@"EEEE, MMM dd"]; 

return [df stringFromDate:date]; 

код работает, но он производит, что предупреждение. Должен ли я беспокоиться об этом, или это нормально на iPhone. Есть ли другой инициализатор NSDate, который я должен использовать?

ответ

2

+dateWithNaturalLanguageString кажется, будет доступна только на Mac: NSDate Class Reference in Mac Dev Center против NSDate Class Reference in iPhone Dev Center

Кроме того, в документации сказано, что:

Это может привести к неожиданным результатам, и его использование настоятельно рекомендуется

В разделе обзора ссылки на класс вы можете найти следующую информацию:

NSDate предоставляет несколько методов для интерпретируют и создать представления снабжать струной, тетивой и т.п. дат (например, dateWithNaturalLanguageString: Язык: и descriptionWithLocale :). В общем, на Mac OS X v10.4 и более поздних версий вы должны использовать экземпляр NSDateFormatter для разбора и генерации строк с использованием методов dateFromString: и stringFromDate: -см NSDateFormatter на Mac OS X 10.4 для более подробной информации ,

Учитывая, что это только официально доступно на Mac, но не на iPhone, я бы не использовал его в проекте iPhone. Даже на Mac кажется, что Apple рекомендует вместо этого использовать NSDateFormatter.

0

Попробуйте использовать NSDateFormatter: dateFromString. Есть example here.

Смежные вопросы