NSDataDetector wykrywa tekst „numer telefonu”
Najprostszym sposobem, w jaki mogę wyjaśnić ten problem, jest próbka kodu i jego wyjście, ale zasadniczo to, co się dzieje, jestNSDataDetector
wykrywa numer telefonu w ciągu, który zawiera słowa „numer telefonu”.
NSError *error = nil;
NSDataDetector *dataDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypePhoneNumber
error:&error];
NSArray *stringsToTest = @[
@"testing phone number 0123 4567891",
@"testing some other number 0123 4567892",
@"phone number 0123 4567893",
@"blah blah 0123 4567894",
@"testing telephone number 0123 4567895"
];
for (NSString *string in stringsToTest)
{
[dataDetector enumerateMatchesInString:string
options:0
range:NSMakeRange(0, string.length)
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
NSLog(@"%@", result.phoneNumber);
}];
}
Wydajność:
2013-11-24 19:04:26.000 PhoneNumberDetector[21874:70b] phone number 0123 4567891
2013-11-24 19:04:26.000 PhoneNumberDetector[21874:70b] 0123 4567892
2013-11-24 19:04:26.000 PhoneNumberDetector[21874:70b] phone number 0123 4567893
2013-11-24 19:04:26.000 PhoneNumberDetector[21874:70b] 0123 4567894
2013-11-24 19:04:26.001 PhoneNumberDetector[21874:70b] 0123 4567895
Przeczytałem dokumentację i przeszukałem SO, ale nie mogę znaleźć niczego, co wskazuje, czy jest to zamierzone zachowanie, a jeśli tak, to dlaczego.
Dzieje się tak na symulatorze 7.0, a także na moim iPhone 5s działającym w wersji 7.0.4.
Jeśli ktokolwiek może rzucić jakieś światło na ten problem, byłbym bardzo wdzięczny.
Aktualizacja: Aby wyjaśnić, nie chcę, aby tekst „numer telefonu” był częścią wyniku podczas uzyskiwania dostępu doNSTextCheckingResult
phoneNumber
własność.