Структура NSRange играет очень важную роль в обращении с некоторыми рассматриваемыми здесь классами.

Она состоит из целочисленных (NSUInteger) компонентов: переменных location и length. Например, диапазон, местоположение которого определяется значением 1 переменной location, начинается со второго элемента какого-нибудь объекта, поскольку отсчет элементов всегда начинается с нуля. Если его длина, определяемая переменной length, равна 2, то она обозначает текущий и следующий элементы. Для обращения с диапазоном в среде Cocoa предоставляются также различные служебные методы, среди которых чаще всего применяется метод NSMakeRange. (Следует иметь в виду, что имя NSMakeRange этого метода обратно сравнимо с такими именами, как CGPointMake и CGRectMake.)

Целочисленная константа NSNotFound указывает на то, что некоторый запрашиваемый элемент не найден. Так, если запросить индекс некоторого объекта в массиве типа NSArray, где этот объект отсутствует, то в результате будет возвращена константа NSNotFound. (Этот результат не может быть равен 0, чтобы указывать на отсутствие объектов, поскольку 0 будет обозначать первый элемент массива. Он не'может быть равен nil, поскольку nil = 0 ив

любом случае не подходит, если ожидается целочисленное значение. Не может он быть равен и -1, потому что значение индекса массива должно быть всегда положительным.) Истинное числовое значение константы NSNotFound особого значения не имеет, поскольку сравнение всегда производится с самой константой NSNotFound, чтобы выяснить, содержит ли результат запроса значащий индекс. Если же в результате поиска по запросу возвращается диапазон, а искомый объект в нем отсутствует, то переменная location в результирующей структуре NSRange будет равна константе NSNotFound.


 

 

 

Добавить комментарий