2013-05-07 4 views
3

항공편 정보와 일치시키기 위해 iOS에서 NSDataDetector를 사용하여 운이 좋았습니까? 내가 전혀 작동하지 않는다는 것을 제외하고는 실제로는 amazingly powerful으로 보입니다.NSDataDetector의 NSTextCheckingTypeTransitInformation을 통해 항공편 정보를 감지하는 것이 전혀 일치하지 않습니다

는 여기에 내가 노력하고있어입니다 : 내가 그것을 비행 정보를 가지고 내 캘린더에서 찾을 수있는 모든 일정 항목의 몸을 포함한 문자열의 다양한이 노력하고있어

NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:(NSTextCheckingTypes)NSTextCheckingTypeTransitInformation error:&error]; 

[detector enumerateMatchesInString:string 
          options:0 
          range:NSMakeRange(0, [string length]) 
         usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) { 

          NSLog(@"Detected: %@, %@", result, [result URL]); 
} 

.

예 : YVR 태평양 서머 타임 오후 10시 14분 편곡

  • "UA460 SFO YVR에 [항공] 2013년 6월 12일 유나이티드 항공 (UA) # 460 출발 SFO 태평양 서머 타임 오후 7시 57분, 티켓 번호 0162360127882, 티켓 # 0162360127883, conf의 #의 K5XBXY이; :, 좌석을 참고 : ---/30A, 좌석 : ---/30B는 "
  • "공항 UA에서 로라를 선택 1255 "
  • "루프트 한자 1128 개 비즈니스 (C) | 좌석 07F 프랑크푸르트 바르셀로나 2 h 0 m 679miles FRA 1:15 pm BCN 3:15 pm, 2012 년 10 월 5 일 금요일 도착
    Lufthansa 1128 비즈니스 (C) | 좌석 07F | 확인 또는 변경 항공사 * "

그러나이 일치 없음으로 좌석을. 내가 큰 NSTextCheckingTypePhoneNumber 또는 NSTextCheckingTypeLink, 그 일치를 포함하는 데이터 검출기 유형을 변경하는 경우. 그러나 나는 비행 데이터를 얻을 수 없습니다.

을 모든 사람은

+0

이 아닌 에 저장되어 있습니다. – SAHM

답변

0

비행 번호는 OS X에서 발견,하지만 iOS에서. 두 문서가 업데이트 얻을, 또는 iOS에 대한 지원을 얻기 위해 애플과 버그를 제출하시기 바랍니다거야?이 어떤 행운이있다.

0
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:(NSTextCheckingTypes)NSTextCheckingTypeTransitInformation error:nil]; 
    NSString *result = @"Pick up Laura at Airport UA 1255"; 
    [detector enumerateMatchesInString:result options:0 range:NSMakeRange(0, [result length]) usingBlock:^(NSTextCheckingResult * _Nullable result, NSMatchingFlags flags, BOOL * _Nonnull stop) { 
     NSLog(@"%@ %@",result, [result components]); 
    }]; 


2016-05-20 11:49:29.912 detectTest[20894:4085484] <NSTransitInformationCheckingResult: 0x7fcc92019f30>{25, 7} { 
    Flight = 1255; 
} 

유일한 차이는 항공편 정보가 [result URL]이 아닌