2013-05-07 56 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]); 
} 

我想這對各種串,包括每個日曆條目我能找到我的日曆,曾在其航班信息的機構。

實例:

  • 「UA460 SFO到YVR [飛行] 2013年6月12日美國聯合航空公司(UA)#460 DEP SFO下午7時57分PDT ARR YVR下午10點14 PDT;票務#0162360127882,票務#0162360127883;#CONF K5XBXY;注:,座位:---/30A,座位:---/30B 「
  • 」在機場UA拿起勞拉1255「
  • 」 德國漢莎航空公司1128個商務(C)|座位07F法蘭克福巴塞羅那2小時0分679米 FRA下午1:15 BCN 3:15 pm,到達2012年10月5日星期五
    Lufthansa 1128 商業(C)|座位07F |確認或更改與航空公司*」

但是,這些比賽的席位。如果我改變數據檢測器類型包括NSTextCheckingTypePhoneNumber或NSTextCheckingTypeLink,那些偉大的比賽,但我不能讓飛行數據。

任何一個有任何這方面的運氣?在OS X中檢測到

+0

您有任何更新嗎? – SAHM 2015-06-12 17:17:10

回答

0

航班號,但不能在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 components]而不是[result URL]