我一直在努力理解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
}
}
答案 0 :(得分:4)
您的代码使用查找地址的数据检测器。您的字符串中没有地址。因此数据检测器找不到任何东西。
没有数据检测器可以找到名称。
如果你知道字符串的结构,那就用它吧。例如,如果您可以保证在示例中名称前面始终存在“space-slash-space”,那么请搜索该名称,并将以下内容作为名称。
如果不知道字符串的结构,则问题几乎无法解决。
答案 1 :(得分:1)
NSDataDetector不支持名称检测。请改用此NSLinguisticTagger。