簡體   English   中英

NSDataDetector檢測字符串中的名稱

[英]NSDataDetector to detect a name in a string

我一直在努力理解NSDataDetector類。 我已經閱讀了文檔,但無法理解。 我所做的一切Xcode都告訴我有一個錯誤。

我覺得這次嘗試可能會走上正確的道路。 如何編寫一個簡單的基礎程序來查找字符串中的名稱?

 NSError *error = nil;
    NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeAddress error:&error];
    NSString *string = @"(555) 555-5555 / Nick";
    NSArray *matches = [detector matchesInString:string
                                         options:0
                                           range:NSMakeRange(0, [string length])];

    for (NSTextCheckingResult *match in matches) {
        if([match addressComponents] // contains NSTextCheckingNameKey){
            // do this
        }
    }

您的代碼使用一個尋找地址的數據檢測器。 您的字符串中沒有地址。 因此,數據檢測器找不到任何東西。

沒有用於查找名稱的數據檢測器。

如果您知道字符串的結構,請使用它。 例如,如果您可以像示例中那樣保證名稱前始終有“ space-slash-space”,那么請搜索該名稱,然后將其作為名稱。

如果您知道字符串的結構,則該問題幾乎無法解決。

NSDataDetector不支持名稱檢測。 為此 ,請使用NSLinguisticTagger

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM