Я использую следующий код и его работу, превосходную в iPhone OS 3.2
+(NSDate *)NSDateFromString:(NSString *)dateString
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *dateObj=[dateFormatter dateFromString:dateString];
[dateFormatter release], dateFormatter=nil;
return dateObj;
}
Но когда я пытался использовать тот же код I iPhone OS 4.0, dateObj был нолем.
Причина:
- (id)init
метод для NSDateFormatter только Доступен в iPhone OS 2.0 через iPhone OS 3.2. Это удерживается от использования в iPhone OS 4.0.
Теперь, каково решение для этого? Как к init NSDateFormater? Какова альтернатива?
[NSDateFormatter dateFormatFromTemplate: options: locale:] может работать лучше
NSString *format = [NSDateFormatter
dateFormatFromTemplate:@"Mdjm"
options:0
locale:[NSLocale currentLocale]];
// «M / dh: mm a» // формат американского английского языка возвращен для локали США
[dateFormatter setDateFormat:format];
NSDate *date = [dateFormatter dateFromString:dateString];
- (id) init
не является устаревшим для NSDateFormatter в iOS4. Это ошибка в документации.