Перечисление

Перечисление является процессом последовательной работы на элементах объекта — обычно набора — каждый самое большее один раз, по одному поочередно. Перечисление также упоминается как итерация. При перечислении объекта Вы обычно выбираете один элемент в объекте за один раз и выполняете работу на нем или с ним. Объект обычно является набором, таким как массив или набор. В концептуально самом простом случае можно использовать стандарт C for цикл для перечисления содержания массива, как показано в следующем примере:

NSArray *array = // get an array;
NSInteger i, count = [array count];
for (i = 0; i < count; i++) {
    id element = [array objectAtIndex:i];
    /* code that acts on the element */
}

Используя для цикла, однако, может быть неэффективным, и требует упорядоченного набора элементов. Перечисление является более общим. Какао поэтому обеспечивает, два дополнительных означает перечислять объекты — NSEnumerator класс и быстрое перечисление.

NSEnumerator

Несколько классов Какао, включая классы набора, можно попросить обеспечить перечислитель так, чтобы можно было получить элементы, сохраненные экземпляром поочередно. Например:

NSSet *aSet = // get a set;
NSEnumerator *enumerator = [aSet objectEnumerator];
id element;
 
while ((element = [enumerator nextObject])) {
    /* code that acts on the element */
}

В целом, однако, использование NSEnumerator класс заменяется быстрым перечислением.

Быстрое перечисление

Несколько классов Какао, включая классы набора, принимают NSFastEnumeration протокол. Вы используете его для получения элементов, сохраненных экземпляром с помощью синтаксиса, подобного тому из стандарта C for цикл, как проиллюстрировано в следующем примере:

NSArray *anArray = // get an array;
for (id element in anArray) {
    /* code that acts on the element */
}

Как имя предполагает, быстрое перечисление более эффективно, чем другие формы перечисления.

Необходимые как условие статьи

Похожие статьи