:fromDate不能为零

我得到这个错误。如何解决它,请build议我。 崩溃报告 [__NSCFCalendar components:fromDate:toDate:options:]: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]; 

你的titemdate是零,因为你的NSDateFormatter无法parsingstr_babyedays的date。 直接从NSDateFormatter的Apple文档:

如果dateFromString:不能parsingstring,则返回nil

你可以看看这些问题,以确定为什么它是nil

NSDateFormatter dateFromString转换

NSDateFormatter dateFromString总是返回nil

dateFromString始终使用dateformatter返回null