Invalid parameter not satisfying: date

nsdate, nsdateformatter, objective-c

Solution

Note that you may be getting bit by the locale "feechure". You need to set the locale of your NSDateFormatter.

Set up a phone with US locale and then set the 12/24 setting to 24. Also set a phone with European locale and then set the 12/24 setting to 12. Likely one or the other or both will fail.

Problem

I'm having an issue coming in from Crashlytics. I have debugging parameters on so I am seeing what parameters there are. ``` datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 40, 0, 0)]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; NSString *startTimeString = [MathFunctions minutesToTimeString:[appointment.start_time integerValue]]; NSLog(@"Time: %@",startTimeString); NSLog(@"Date: %@", appointment.date); [dateFormatter setDateFormat:@"yyyyMMdd h:mm a"]; [Crashlytics setObjectValue:[NSString stringWithFormat:@"%@ %@", appointment.date, startTimeString] forKey:@"ResAddDate"]; NSString *dateTimeString = [NSString stringWithFormat:@"%@ %@", appointment.date, startTimeString]; NSLog(@"Date String: %@", dateTimeString); datePicker.date = [dateFormatter dateFromString:dateTimeString]; ``` The crashlog coming from crashlytics shows that the date is formatted properly `RESADDDATE: 20120621 12:00 AM` The crash occurs on `datePicker.date = [dateFormatter dateFromString:dateTimeString];` Why is this crashing if the date format is there and correct? Crashlytics Log: ``` CoreFoundation __exceptionPreprocess + 162 1 libobjc.A.dylib objc_exception_throw + 32 2 CoreFoundation +[NSException raise:format:] 3 Foundation -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 90 4 UIKit -[UIDatePickerView _updateBitsForDate:forced:andReload:animateIfNeeded:] + 146 5 UIKit -[UIDatePickerView _setDate:animated:forced:] + 348 6 UIKit -[UIDatePickerView setDate:animated:] + 30 7 UIKit -[UIDatePicker setDate:] + 36 8 MyApp ReserveAddController.m line 283 -[ReserveAddController showDatePicker] + 283 9 MyApp ReserveAddController.m line 179 -[ReserveAddController tableView:didSelectRowAtIndexPath:] + 179 10 UIKit -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 944 11 UIKit -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 158 12 Foundation __NSFireDelayedPerform + 414 13 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 14 14 CoreFoundation __CFRunLoopDoTimer + 364 15 CoreFoundation __CFRunLoopRun + 1206 16 CoreFoundation CFRunLoopRunSpecific + 300 17 CoreFoundation CFRunLoopRunInMode + 104 18 GraphicsServices GSEventRunModal + 136 19 UIKit UIApplicationMain + 1080 20 Appointment-Plus main.m line 16 main + 16 21 Appointment-Plus ```

Original source

Related problems