2012-06-20 6 views
2

У меня проблема с Crashlytics. У меня есть параметры отладки, поэтому я вижу, какие параметры есть.Недопустимый параметр:

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]; 

crashlog исходя из crashlytics показывает, что дата отформатирован

RESADDDATE: 20120621 12:00 AM

Катастрофа происходит на datePicker.date = [dateFormatter dateFromString:dateTimeString];

Почему этот сбой, если формат даты там и правильно?

Crashlytics Вход:

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 
+0

Можете ли вы показать журнал аварии или трассировку? –

+0

@MichaelFrederick Я отредактировал OP – Bot

+0

У UIDatePicker был отказ от утверждения. Это довольно ненадежный API, так что это не слишком удивительно. Было бы разумно распечатать фактический NSDate, который вы передаете UIDatePicker. Также подумайте, что проблема может быть связана с вашей настройкой UIDatePicker - возможно, вы каким-то образом инициализировали катушки. –

ответ

6

Обратите внимание, что вы можете получать немного локалью "feechure". Вам необходимо установить языковой стандарт вашего NSDateFormatter.

Настройте телефон с локалию США, а затем установите для параметра 12/24 значение 24. Также установите телефон с европейским языковым стандартом, а затем установите для параметра 12/24 значение 12. Вероятность того или другого или обоих не будет выполнена.

+1

ты зверь! Никогда об этом не думал. Когда я разговаривал с одним из парней по поводу комментариев, которые были в крушении, я понимаю, что он сказал, что он из Ирландии. Я установил свой телефон в Ирландию и дублировал крушение. Похоже, это преступник. Будут исследовать и возвращаться. – Bot

+0

(«Feechure» - это законный термин «программирование искусства».) –

+0

Как вы рекомендуете это делать? – Bot

Смежные вопросы