[__NSCFCalendar компоненты:fromDate:toDate:options:]: fromDate не может быть нулевым

Я получаю эту ошибку. Как ее решить. Пожалуйста, предложите мне. Отчет о сбое [__NSCFCalendar компоненты:fromDate:toDate:options:]: fromDate не может быть нулевым Я имею в виду, что, по-вашему, должна означать эта операция с нулевым значением fromDate? На данный момент исключено исключение. О некоторых из этих ошибок будет сообщено в этой жалобе, а дальнейшие нарушения будут просто молча делать любые случайные вещи, возникающие из-за нуля. Вот обратная трассировка, где это произошло на этот раз (некоторые кадры могут отсутствовать из-за оптимизации компилятора): Мой код

NSString *str_babyedays=aMileBusiness.str_DAte;
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"dd-MM-yyyy"];
    df.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"EN"];
    NSDate *titemdate = [df dateFromString: str_babyedays];



    NSDate *currentDate = [NSDate date];
    NSCalendar *gregorian = [[NSCalendar alloc]
                             initWithCalendarIdentifier:NSGregorianCalendar];
    NSUInteger unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit;
    NSDateComponents *components = [gregorian components:unitFlags
                                                fromDate:titemdate
                                                  toDate:currentDate options:0];

    NSInteger months = [components month];
    NSInteger day= [components day];

person Ravikumar    schedule 05.11.2014    source источник
comment
Покажите журнал str, чтобы мы могли видеть его формат. Этот формат должен совпадать с тем, который вы используете в setDateFormat для вашего средства форматирования.   -  person rdelmar    schedule 05.11.2014
comment
NSDate *titemdate = [df dateFromString: str_babyedays];   -  person Ravikumar    schedule 06.11.2014
comment
Поместите в этот журнал NSLog(@%@,str_babyedays) и сообщите, что он показывает.   -  person rdelmar    schedule 06.11.2014
comment
titemdate --›(null), а дата strbabydays ---›11-01-2014 13:53   -  person Ravikumar    schedule 06.11.2014
comment
DateFormat вашего средства форматирования даты должен соответствовать входной строке, чтобы он мог преобразовать строку в дату. Это: 01-11-2014 13:53 не соответствует этому: дд-мм-гггг. Вам также необходимо добавить компоненты времени в строку формата.   -  person rdelmar    schedule 06.11.2014


Ответы (1)


Ваш titemdate равен нулю, потому что ваш NSDateFormatter не смог проанализировать дату из str_babyedays. Прямо из документации Apple для NSDateFormatter:

Если dateFromString: не может разобрать строку, возвращает nil.

Вы можете посмотреть на любой из этих вопросов, чтобы определить, почему это nil.

преобразование NSDateFormatter dateFromString

NSDateFormatter dateFromString всегда возвращает ноль

dateFromString всегда возвращает значение null с форматированием даты

person Ian MacDonald    schedule 05.11.2014
comment
Спасибо за ответ. NSDate *dateFromString = [df dateFromString:str_babyedays]; У меня не работает. В чем причина. - person Ravikumar; 05.11.2014