我最近在我的醫療應用程序中添加了一項功能,可根據輸入日期計算患者的年齡。如果年齡爲零,則日期選擇器顯示1950年1月1日作爲輸入出生日期的默認開始日期。該代碼在iPhone和iPad硬件上的iOS 4.0+上運行良好。但是,在提交應用更新之前進行測試時,我發現日期選取器在我的第一代iPod上崩潰,我用它來測試iOS 3.1.3。我縮小了下面的代碼的罪魁禍首,它設置默認日期爲日期選擇器:日期選擇器代碼問題
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];
}
從iPod的日誌顯示崩潰後下面兩行:
<Warning>: *** Assertion failure in -[UIDatePickerView _updateBitsForDate:andReload:animateIfNeeded:], /SourceCache/UIKit/UIKit-984.38/UIDatePicker.m:908
和
<Error>: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: date'
我很感激任何幫助理解爲什麼這個崩潰只發生在舊設備上,以及如何解決這個問題。提前致謝。
_updateBitsForDate:andReload:animateIfNeeded:看起來是一種自定義方法。發佈代碼以獲取幫助。 – msgambel
@ MSgambel:'_updateBitsForDate:andReload:animateIfNeeded:'是一個內部Apple方法。 – titaniumdecoy