Почему NSDateFormatter не возвращает NSString? - PullRequest
0 голосов
/ 31 мая 2010

Почему это сообщение не возвращает строку:

NSDate *today = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSString *formattedDate = (@"Date for today %@:", [dateFormatter stringFromDate:today]);

1 Ответ

2 голосов
/ 31 мая 2010

Это выражение возвращает NSString, но без форматирования. Для правильного форматирования строки NSS используется метод +stringWithFormat: :

NSString* formattedDate = [NSString stringWithFormat:@"Date for today %@:",
                           [dateFormatter stringFromDate:today]];

Выражение a, b является " выражением запятой ". Он будет последовательно оценивать a и b и вернет значение b. В вашем случае он вернет только строку даты.

В большинстве случаев вы не хотите использовать запятую.


Кроме того, dateFormatter необходимо настроить перед использованием. Например,

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
...
... [dateFormatter stringFromDate:today] ...
...
[dateFormatter release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...