Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы основы ссылка класса NSDataDetector

Опции
Развертывание Target:

На этой странице
Язык:

NSDataDetector

Наследование


Оператор импорта


Swift

import Foundation

Objective C

@import Foundation;

Доступность


Доступный в iOS 4.0 и позже.

NSDataDetector класс является специализированным подклассом NSRegularExpression класс, разработанный для соответствия детекторов данных.

В настоящее время NSDataDetector класс может соответствовать даты, адреса, ссылки, телефонные номера и передать транзитом информацию.

Результаты соответствия содержания возвращаются как NSTextCheckingResult объекты. Однако NSTextCheckingResult объекты, возвращенные NSDataDetector отличаются от возвращенных базовым классом NSRegularExpression. Результаты, возвращенные NSDataDetector будет иметь один из типов детекторов данных, в зависимости от типа результата, возвращаемого, и у них будут соответствующие свойства. Например, результаты типа NSTextCheckingTypeDate имейте a date, timeZone, и duration; результаты типа NSTextCheckingTypeLink имейте a URL, и т.д.

Примеры

Следующее показывает несколько дипломированных примеров использования NSDataDetector класс.

Этот фрагмент кода создает детектор данных, который найдет ссылки URL и телефонные номера. Если с ошибкой встретились, она возвращается в error.

  • NSError *error = NULL;
  • NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink|NSTextCheckingTypePhoneNumber
  • error:&error];

Как только экземпляр детектора данных создается, можно определить число соответствий в диапазоне строки с помощью NSRegularExpression метод numberOfMatchesInString:options:range:.

  • NSUInteger numberOfMatches = [detector numberOfMatchesInString:string
  • options:0
  • range:NSMakeRange(0, [string length])];

Если Вы интересуетесь только полным диапазоном первого соответствия, numberOfMatchesInString:options:range: метод обеспечивает его. Однако с детекторами данных, это менее вероятно, чем с регулярными выражениями, потому что клиенты обычно будут интересоваться дополнительной информацией также.

Доступная дополнительная информация зависит от типа результата. Для результатов типа NSTextCheckingTypeLink, это URL свойство, которое значительно. Для результатов типа NSTextCheckingTypePhoneNumber , это phoneNumber свойство вместо этого.

matchesInString:options:range: метод подобен firstMatchInString:options:range:, за исключением того, что это возвращает все соответствия, а не только первое. Следующий фрагмент кода находит все соответствия для ссылок и телефонных номеров в строке.

  • NSArray *matches = [detector matchesInString:string
  • options:0
  • range:NSMakeRange(0, [string length])];
  • for (NSTextCheckingResult *match in matches) {
  • NSRange matchRange = [match range];
  • if ([match resultType] == NSTextCheckingTypeLink) {
  • NSURL *url = [match URL];
  • } else if ([match resultType] == NSTextCheckingTypePhoneNumber) {
  • NSString *phoneNumber = [match phoneNumber];
  • }
  • }

NSRegularExpression Блочный перечислитель объекта является самым общим и гибким из методов сопоставления. Это позволяет Вам выполнять итерации через соответствия в строке, выполняя произвольные действия с каждым, как указано кодом в Блоке, и останавливаться отчасти через при желании. В следующем фрагменте кода останавливается итерация после определенного числа соответствий были найдены.

  • __block NSUInteger count = 0;
  • [detector enumerateMatchesInString:string
  • options:0
  • range:NSMakeRange(0, [string length])
  • usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){
  • NSRange matchRange = [match range];
  • if ([match resultType] == NSTextCheckingTypeLink) {
  • NSURL *url = [match URL];
  • } else if ([match resultType] == NSTextCheckingTypePhoneNumber) {
  • NSString *phoneNumber = [match phoneNumber];
  • }
  • if (++count >= 100) *stop = YES;
  • }];
  • Создает и возвращает новый экземпляр детектора данных.

    Объявление

    Objective C

    + (NSDataDetector *)dataDetectorWithTypes:(NSTextCheckingTypes)checkingTypes error:(NSError **)error

    Параметры

    checkingTypes

    Типы проверки. Поддерживаемые типы проверки являются подмножеством типов, указанных в NSTextCheckingType. Те константы могут быть объединены с помощью оператора C-битового-«ИЛИ».

    error

    Параметр, если ошибка происходит во время инициализации, содержащий ошибку, с которой встречаются.

    Возвращаемое значение

    Возвращает недавно детектор инициализируемых данных. Если с ошибкой встретились возвраты nil, и error содержит ошибку.

    Обсуждение

    В настоящее время, поддерживаемые детекторы данных checkingTypes : NSTextCheckingTypeDate, NSTextCheckingTypeAddress, NSTextCheckingTypeLink, NSTextCheckingTypePhoneNumber, и NSTextCheckingTypeTransitInformation.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в iOS 4.0 и позже.

  • init (types:error:) - initWithTypes:error: Определяемый инициализатор

    Инициализирует и возвращает экземпляр детектора данных.

    Объявление

    Swift

    init?(types checkingTypes: NSTextCheckingTypes, error error: NSErrorPointer)

    Objective C

    - (instancetype)initWithTypes:(NSTextCheckingTypes)checkingTypes error:(NSError **)error

    Параметры

    checkingTypes

    Типы проверки. Поддерживаемые типы проверки являются подмножеством типов NSTextCheckingType. Те константы могут быть объединены с помощью оператора C-битового-«ИЛИ».

    error

    Параметр, если ошибка происходит во время инициализации, содержащий ошибку, с которой встречаются.

    Возвращаемое значение

    Возвращает недавно детектор инициализируемых данных. Если с ошибкой встретились возвраты nil, и error содержит ошибку.

    Обсуждение

    В настоящее время, поддерживаемые детекторы данных checkingTypes : NSTextCheckingTypeDate, NSTextCheckingTypeAddress, NSTextCheckingTypeLink, NSTextCheckingTypePhoneNumber, и NSTextCheckingTypeTransitInformation.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 4.0 и позже.

  • checkingTypes Свойство

    Возвращает типы проверки для этого детектора данных. (только для чтения)

    Объявление

    Swift

    var checkingTypes: NSTextCheckingTypes { get }

    Objective C

    @property(readonly) NSTextCheckingTypes checkingTypes

    Обсуждение

    Поддерживаемое подмножество проверки типов указано в NSTextCheckingType. Те константы могут быть объединены с помощью оператора C-битового-«ИЛИ».

    В настоящее время, поддерживаемые детекторы данных checkingTypes : NSTextCheckingTypeDate, NSTextCheckingTypeAddress, NSTextCheckingTypeLink, NSTextCheckingTypePhoneNumber, и NSTextCheckingTypeTransitInformation.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 4.0 и позже.