이 질문은 Apple Dev 포럼 https://devforums.apple.com/message/956514에 올렸습니다. 여기에 게시하는 것이 좋습니다. Apple 개발자 포럼에는 아직 답변이 없습니다.NSDataDetector와 1900 이전 날짜는 잘못된 날짜를 반환합니다.
1900 년보다 적은 날짜를 입력 할 때마다 NSDataDetector가 잘못된 날짜와 일치합니다. 예를 들어
는 :
는년 1 월 1 일이 1900보다 이전의 월 모든 날짜를 보인다 2014
년 1 월 1 일 2015 년 2 월 1-1201 일치 2 월 1-1201 일치, 그와 함께 다시 온다
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeDate error:&error];
NSArray *matches = [detector matchesInString:myDateString options:0 range:NSMakeRange(0, [myDateString length])];
for (NSTextCheckingResult *match in matches) {
if (match.resultType == NSTextCheckingTypeDate) {
determinedDate = match.date;
}
}
월 날짜 만, 2015 년 그리고 올해 말 여기에 2014
에서 해당 날짜 월 이상하지만 1900 경기 전에 어떤 년, 어떤 날짜는 날짜를 검출 내 코드입니다
myDateString은 구문 분석해야하는 날짜 값이 포함 된 문자열입니다.
뭔가 잘못되었거나 NSDataDetector의 알려진 문제입니까?
이 동작을 수정할 수 있으면 좋을 것입니다. –
http://bugreport.apple.com에서 버그를 신고해야합니다. –
NSDateFormatter를 사용하면 "내일 점심 식사"같은 것을 입력 할 수 없으며 특정 날짜 형식을 사용하여 날짜를 입력해야합니다. 사용자에게 친숙하지 않습니다. –