Invalid parameter not satisfying: date

痴心易碎 提交于 2019-12-24 00:28:12

问题


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

回答1:


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.



来源:https://stackoverflow.com/questions/11129698/invalid-parameter-not-satisfying-date

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!