Проблема инициализатора NSDate на iPhone - PullRequest
0 голосов
/ 18 февраля 2010

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

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

return [df stringFromDate:date];

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

Ответы [ 2 ]

2 голосов
/ 18 февраля 2010

+dateWithNaturalLanguageString представляется доступным только на Mac: Ссылка на класс NSDate в Mac Центр разработки против Ссылка на класс NSDate в iPhone Центр разработки

Также в документации сказано, что:

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

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

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

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

0 голосов
/ 24 апреля 2011

Попробуйте использовать NSDateFormatter: dateFromString.Здесь есть пример .

...