开发者

Problem with date picker code

开发者 https://www.devze.com 2023-03-24 15:04 出处:网络
I recently added a feature to my medical app that calculates a patient\'s age from an entered date. If the age is zero, then the date picker displays January 1, 1950 as a default starting date for ent

I recently added a feature to my medical app that calculates a patient's age from an entered date. If the age is zero, then the date picker displays January 1, 1950 as a default starting date for entry of the date of开发者_StackOverflow中文版 birth. The code works fine on iOS 4.0+ on iPhone and iPad hardware. However, when testing just prior to submission for an app update, I found the date picker crashing on my first-generation iPod, which I keep for testing iOS 3.1.3. I narrowed down the following code as the culprit, which sets the default date for the date picker:

    if (age == 0) {
        NSDateFormatter *myFormatter = [[NSDateFormatter alloc] init];
        [myFormatter setDateFormat:@"M/d/yy"];
        NSDate *initialDate = [myFormatter dateFromString:@"January/01/1950"];
        [picker setDate:initialDate animated:YES];
    }

The log from the iPod shows the following two lines after the crash:

<Warning>: *** Assertion failure in -[UIDatePickerView _updateBitsForDate:andReload:animateIfNeeded:], /SourceCache/UIKit/UIKit-984.38/UIDatePicker.m:908

and

<Error>: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: date'

I would appreciate any help in understanding why this crash occurs only on the older device, and how to solve the issue. Thanks in advance.


According to the tr35-10 standard, your date format should be MMMM/dd/yyyy.

You should also cache formatters for efficiency.

0

精彩评论

暂无评论...
验证码 换一张
取 消