-2

I am getting this error .How to solve it.Please suggest me. Crash Report [__NSCFCalendar components:fromDate:toDate:options:]: fromDate cannot be nil I mean really, what do you think that operation is supposed to mean with a nil fromDate? An exception has been avoided for now. A few of these errors are going to be reported with this complaint, then further violations will simply silently do whatever random thing results from the nil. Here is the backtrace where this occurred this time (some frames may be missing due to compiler optimizations): My code

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];
Ravikumar
  • 85
  • 1
  • 16
  • 1
    Show a log of str, so we can see it's format. That format must match the one you use in setDateFormat for your formatter. – rdelmar Nov 05 '14 at 16:17
  • NSDate *titemdate = [df dateFromString: str_babyedays]; – Ravikumar Nov 06 '14 at 04:48
  • Put in this log, NSLog(@"%@",str_babyedays), and report what it shows. – rdelmar Nov 06 '14 at 05:01
  • the titemdate is -->(null) and strbabydays date is--->11-01-2014 13:53 PM – Ravikumar Nov 06 '14 at 05:26
  • Your date formatter's dateFormat must match the input string in order for it to convert the string to a date. This: 11-01-2014 13:53 PM does not match this: dd-MM-yyyy. You need to add the time components as well to the format string. – rdelmar Nov 06 '14 at 05:40

1 Answers1

4

Your titemdate is nil because your NSDateFormatter was unable to parse a date from str_babyedays. Straight from the Apple documentation for NSDateFormatter:

If dateFromString: can not parse the string, returns nil.

You can look at any of these questions to determine why it's nil.

NSDateFormatter dateFromString conversion

NSDateFormatter dateFromString Always Returns nil

dateFromString always returns null with dateformatter

Community
  • 1
  • 1
Ian MacDonald
  • 13,472
  • 2
  • 30
  • 51
  • Thanks for giving answer.NSDate *dateFromString = [df dateFromString:str_babyedays]; Its not working for me.wha's the reason. – Ravikumar Nov 05 '14 at 15:33