OSIterator
Абстрактный суперкласс для итераторов Libkern.
OSIterator является абстрактным суперклассом для всех итераторов объекта C++ Libkern. Это определяет основной интерфейс для итерации и сброса. См. OSCollection и OSCollectionIterator для получения дополнительной информации.
За очень немногими исключениями в Наборе I/O все находящиеся в Libkern классы C++, функции и макросы небезопасны использовать в основном контексте прерывания. Консультируйтесь с документацией Набора I/O, связанной с основными прерываниями для получения дополнительной информации.
OSIterator не обеспечивает защиты параллелизма.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Усовершенствования к и возвраты следующий объект в итерации.
Объявление
C++
virtual OSObject *getNextObject() = 0;
Возвращаемое значение
Следующий объект в итеративном контексте,
NULL
если итератор больше не действителен, если существует никакой следующий объект или.Обсуждение
Возвращенный объект будет выпущен, если удалено из набора; если Вы планируете сохранить ссылку, необходимо вызвать
retain
на том объекте.Подклассы должны реализовать эту чистую виртуальную функцию для проверки на законность с
isValid
, и затем усовершенствовать итеративный контекст к следующему объекту (если таковые имеются) и возврат, которые затем возражают, илиNULL
если нет ни одного. -
Проверьте, что набор не был изменен во время итерации.
Объявление
C++
virtual bool isValid() = 0;
Возвращаемое значение
true
если итератор допустим для продолжительного использования,false
иначе (обычно, потому что выполняемый с помощью итераций набор был изменен).Обсуждение
Подклассы должны реализовать эту чисто виртуальную функцию-член.
-
Сбрасывает итератор к началу набора, как будто это было просто создано.
Объявление
C++
virtual void reset() = 0;
Обсуждение
Подклассы должны реализовать эту чисто виртуальную функцию-член.