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

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

Разработчик

Ссылка платформы CoreFoundation ссылка CFTree

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

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

Ссылка CFTree

Вы используете CFTree для создания древовидных структур, представляющих иерархические организации информации. В таких структурах каждый древовидный узел имеет точно одно семенное дерево (за исключением корневого дерева, не имеющего никакого родителя), и может иметь многократные дочерние элементы. Каждому объекту CFTree в структуре связали контекст с ним; этот контекст включает некоторые определенные с помощью программы данные, а также обратные вызовы, воздействующие на те данные. Определенные с помощью программы данные часто используются в качестве основания для определения, где CFTree возражает адаптации в структуре. Все объекты CFTree являются непостоянными.

Вы создаете объект CFTree использование CFTreeCreate функция. Эта функция берет средство выделения и указатель на a CFTreeGetContext структура как параметры. CFTreeContext структура содержит определенные с помощью программы данные, и обратные вызовы должны были описать, сохранить и выпустить те данные. Если Вы не реализуете эти обратные вызовы, то Ваши определенные с помощью программы данные не будут сохранены или выпущены, когда деревья будут добавлены и удалены из родителя.

Каждый объект CFTree имеет родителя и список дочерних элементов, все из которых могут быть NULL. CFTree обеспечивает функции для добавления и удаления древовидных объектов от древовидной структуры. Используйте CFTreeAppendChild, CFTreeInsertSibling, или CFTreePrependChild функции для добавления деревьев к древовидной структуре, и CFTreeRemove или CFTreeRemoveAllChildren функции для удаления деревьев.

В целях управления памятью CFTree может считаться набором. Обычно единственный объект, сохраняющий дочернее дерево, является своим родителем. Обычно, поэтому при удалении дочернего дерева из дерева дочернее дерево уничтожается. Если Вы хотите использовать дочернее дерево после удаления его из его родителя необходимо сохранить дочернее дерево сначала до удаления его.

Выпуск дерева выпускает свои дочерние деревья и все их дочерние деревья (рекурсивно). Отметьте также, что заключительный выпуск дерева (когда сохранять уменьшения количества для обнуления) вызывает все свои дочерние деревья и все их дочерние деревья (рекурсивно), чтобы быть уничтоженным, независимо от их сохранять количества. Выпуск дочернего элемента, который находится все еще в дереве, является поэтому программной ошибкой и может заставить Ваше приложение отказывать.

Можно использовать любую из получить функций (функции, содержащие слово «Get») для получения родителя, дочерних элементов или атрибутов дерева. Например, использовать CFTreeGetChildAtIndex получить дочерний элемент дерева в указанном расположении. Вместе с другой Базовой Основой «Получают» функции, эти функции не сохраняют возвращающееся дерево. При создании других модификаций к дереву необходимо или сохранить или сделать глубокую копию дочернего дерева возвращенной.

Можно применить функцию ко всем дочерним элементам дерева с помощью CFTreeApplyFunctionToChildren функция и дочерние элементы вида дерева с помощью CFTreeSortChildren функция.

Функции

  • Создает новый объект CFTree.

    Объявление

    Swift

    func CFTreeCreate(_ allocator: CFAllocator!, _ context: UnsafePointer<CFTreeContext>) -> CFTree!

    Objective C

    CFTreeRef CFTreeCreate ( CFAllocatorRef allocator, const CFTreeContext *context );

    Параметры

    allocator

    Средство выделения для использования для выделения памяти для нового дерева. Передача NULL или kCFAllocatorDefault использовать текущее средство выделения по умолчанию.

    context

    CFTreeContext структура, которая будет копироваться и использоваться в качестве контекста нового дерева. Если сохранить функция будет предоставлена, информационный указатель будет сохранен деревом. Если это значение не является допустимым указателем C на a CFTreeContext блок размера структуры хранения, результат не определен. Если номер версии хранения не является допустимым CFTreeContext номер версии, результат не определен.

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

    Новый объект CFTree. Владение соблюдает Создать Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Добавляет новый дочерний элемент к дереву как последнее в его списке дочерних элементов.

    Объявление

    Swift

    func CFTreeAppendChild(_ tree: CFTree!, _ newChild: CFTree!)

    Objective C

    void CFTreeAppendChild ( CFTreeRef tree, CFTreeRef newChild );

    Параметры

    tree

    Дерево, к которому можно добавить newChild.

    newChild

    Дочернее дерево для добавления к tree. Если этот параметр является деревом, которое уже является дочерним элементом любого другого дерева, поведение не определено.

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Вставляет новый одноуровневый элемент после данного дерева.

    Объявление

    Swift

    func CFTreeInsertSibling(_ tree: CFTree!, _ newSibling: CFTree!)

    Objective C

    void CFTreeInsertSibling ( CFTreeRef tree, CFTreeRef newSibling );

    Параметры

    tree

    Дерево, после которого можно вставить newSibling. tree должен иметь родителя.

    newSibling

    Одноуровневый элемент для добавления. newSibling не должен иметь родителя.

    Обсуждение

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

    Если Вы хотите управлять существующей древовидной структурой с тех пор newSibling не должен иметь родителя, необходимо удалить дерево из его родителя для перемещения его в новую позицию. Если Вы делаете это, необходимо сохранить дерево перед фактическим удалением его из его родителя (см. CFTreeRemove).

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Удаляет все дочерние элементы дерева.

    Объявление

    Swift

    func CFTreeRemoveAllChildren(_ tree: CFTree!)

    Objective C

    void CFTreeRemoveAllChildren ( CFTreeRef tree );

    Параметры

    tree

    Дерево для изменения.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Добавляет новый дочерний элемент к указанному дереву как первое в его списке дочерних элементов.

    Объявление

    Swift

    func CFTreePrependChild(_ tree: CFTree!, _ newChild: CFTree!)

    Objective C

    void CFTreePrependChild ( CFTreeRef tree, CFTreeRef newChild );

    Параметры

    tree

    Дерево, к которому можно добавить newChild.

    newChild

    Дочернее дерево для добавления к tree. Это значение не должно быть дочерним элементом другого дерева.

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Удаляет дерево из его родителя.

    Объявление

    Swift

    func CFTreeRemove(_ tree: CFTree!)

    Objective C

    void CFTreeRemove ( CFTreeRef tree );

    Параметры

    tree

    Дерево для удаления из его родителя.

    Обсуждение

    Когда дочернее дерево удалено из его родителя, родитель выпускает его. Если Вы хотите использовать дочерний элемент после удаления его необходимо гарантировать, чтобы Вы сохранили его прежде, чем удалить его из его родителя.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Заменяет контекст дерева путем выпуска старого информационного указателя и сохранения нового.

    Объявление

    Swift

    func CFTreeSetContext(_ tree: CFTree!, _ context: UnsafePointer<CFTreeContext>)

    Objective C

    void CFTreeSetContext ( CFTreeRef tree, const CFTreeContext *context );

    Параметры

    tree

    Дерево для изменения.

    context

    CFTreeContext структура, которая будет копироваться и использоваться в качестве контекста нового дерева. Если сохранить функция будет предоставлена, информационный указатель будет сохранен деревом. Если это значение не является допустимым указателем C на a CFTreeContext блок размера структуры хранения, результат не определен. Если номер версии хранения не является допустимым CFTreeContext номер версии, результат не определен.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Сортирует непосредственные дочерние элементы дерева с помощью указанной функции компаратора.

    Объявление

    Swift

    func CFTreeSortChildren(_ tree: CFTree!, _ comparator: CFComparatorFunction, _ context: UnsafeMutablePointer<Void>)

    Objective C

    void CFTreeSortChildren ( CFTreeRef tree, CFComparatorFunction comparator, void *context );

    Параметры

    tree

    Дерево к виду.

    comparator

    Функция с компаратором функционирует подпись типа, использующаяся в работе вида для сравнения дочерних элементов дерева. Дочерние элементы дерева сортируются от наименьшего количества до самого большого согласно этой функции.

    context

    Определенное с помощью программы значение размера указателя, которое передается функции компаратора, но иначе не использовано этой функцией.

    Обсуждение

    Обратите внимание на то, что компаратор только управляет одним уровнем глубоко и не воздействует на потомков, далее удаленных, чем непосредственные дочерние элементы древовидного узла.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает корневое дерево данного дерева.

    Объявление

    Swift

    func CFTreeFindRoot(_ tree: CFTree!) -> CFTree!

    Objective C

    CFTreeRef CFTreeFindRoot ( CFTreeRef tree );

    Параметры

    tree

    Дерево для исследования.

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

    Корень tree где корень определяется как дерево без родителя. Владение соблюдает Получить Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает дочерний элемент дерева в указанном индексе.

    Объявление

    Swift

    func CFTreeGetChildAtIndex(_ tree: CFTree!, _ idx: CFIndex) -> CFTree!

    Objective C

    CFTreeRef CFTreeGetChildAtIndex ( CFTreeRef tree, CFIndex idx );

    Параметры

    tree

    Дерево для исследования.

    idx

    Индекс дочернего элемента получает. Значение должно быть меньше, чем число дочерних элементов в tree.

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

    Дочернее дерево в idx. Владение соблюдает Получить Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает число дочерних элементов в дереве.

    Объявление

    Swift

    func CFTreeGetChildCount(_ tree: CFTree!) -> CFIndex

    Objective C

    CFIndex CFTreeGetChildCount ( CFTreeRef tree );

    Параметры

    tree

    Дерево для исследования.

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

    Число дочерних элементов в tree.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Заполняет буфер дочерними элементами от дерева.

    Объявление

    Swift

    func CFTreeGetChildren(_ tree: CFTree!, _ children: UnsafeMutablePointer<Unmanaged<CFTree>?>)

    Objective C

    void CFTreeGetChildren ( CFTreeRef tree, CFTreeRef *children );

    Параметры

    tree

    Дерево для исследования.

    children

    Массив C значений размера указателя, чтобы быть заполненным дочерними элементами от tree. Это значение должно быть допустимым указателем на массив C, по крайней мере, размера числа дочерних элементов в tree. Используйте CFTreeGetChildCount функция для получения числа дочерних элементов в tree. Вы ответственны за сохранение и выпуск возвращенных объектов по мере необходимости.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает контекст указанного дерева.

    Объявление

    Swift

    func CFTreeGetContext(_ tree: CFTree!, _ context: UnsafeMutablePointer<CFTreeContext>)

    Objective C

    void CFTreeGetContext ( CFTreeRef tree, CFTreeContext *context );

    Параметры

    tree

    Дерево для исследования.

    context

    CFTreeContext структура, чтобы быть заполненным в контекстом указанного дерева. Это значение должно быть допустимым указателем C на a CFTreeContext блок размера структуры хранения. Если номер версии хранения не является допустимым CFTreeContext номер версии структуры, результат не определен.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает первый дочерний элемент дерева.

    Объявление

    Swift

    func CFTreeGetFirstChild(_ tree: CFTree!) -> CFTree!

    Objective C

    CFTreeRef CFTreeGetFirstChild ( CFTreeRef tree );

    Параметры

    tree

    Дерево для исследования.

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

    Первый дочерний элемент tree. Владение соблюдает Получить Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает следующий одноуровневый элемент, смежный с данным деревом, в дочернем списке родителя.

    Объявление

    Swift

    func CFTreeGetNextSibling(_ tree: CFTree!) -> CFTree!

    Objective C

    CFTreeRef CFTreeGetNextSibling ( CFTreeRef tree );

    Параметры

    tree

    Дерево для исследования.

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

    Следующий одноуровневый элемент, смежный с tree. Владение соблюдает Получить Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает родителя данного дерева.

    Объявление

    Swift

    func CFTreeGetParent(_ tree: CFTree!) -> CFTree!

    Objective C

    CFTreeRef CFTreeGetParent ( CFTreeRef tree );

    Параметры

    tree

    Дерево для исследования.

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

    Родитель tree. Владение соблюдает Получить Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Вызывает функцию один раз для каждого непосредственного дочернего элемента дерева.

    Объявление

    Swift

    func CFTreeApplyFunctionToChildren(_ tree: CFTree!, _ applier: CFTreeApplierFunction, _ context: UnsafeMutablePointer<Void>)

    Objective C

    void CFTreeApplyFunctionToChildren ( CFTreeRef tree, CFTreeApplierFunction applier, void *context );

    Параметры

    tree

    Дерево для работы на.

    applier

    Функция обратного вызова для вызова один раз для каждого дочернего элемента в tree. Функция должна быть в состоянии примениться ко всем значениям в дереве.

    context

    Определенное с помощью программы значение размера указателя, которое передается функции applier, но иначе не использовано этой функцией.

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает идентификатор типа непрозрачного типа CFTree.

    Объявление

    Swift

    func CFTreeGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CFTreeGetTypeID ( void );

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

    Идентификатор типа непрозрачного типа CFTree.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

Обратные вызовы

  • Тип функции обратного вызова, используемой CFTree, применяет функцию.

    Объявление

    Swift

    typealias CFTreeApplierFunction = CFunctionPointer<((UnsafePointer<Void>, UnsafeMutablePointer<Void>) -> Void)>

    Objective C

    typedef void (*CFTreeApplierFunction) ( const void *value, void *context );

    Параметры

    value

    Текущий дочерний элемент выполняющегося с помощью итераций дерева.

    context

    Определенный с помощью программы параметр контекста, переданный функции applier.

    Обсуждение

    Этот обратный вызов используется CFTreeApplyFunctionToChildren функция applier.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Функция обратного вызова раньше предоставляла описание определенного с помощью программы информационного указателя.

    Объявление

    Swift

    typealias CFTreeCopyDescriptionCallBack = CFunctionPointer<((UnsafePointer<Void>) -> Unmanaged<CFString>!)>

    Objective C

    typedef CFStringRef (*CFTreeCopyDescriptionCallBack) ( const void *info );

    Параметры

    info

    Предоставленный программу информационный указатель обеспечил в a CFTreeContext структура.

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

    Текстовое описание info. Вызывающая сторона ответственна за выпуск этого объекта.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Функция обратного вызова раньше выпускала ранее сохраненный определенный с помощью программы информационный указатель.

    Объявление

    Swift

    typealias CFTreeReleaseCallBack = CFunctionPointer<((UnsafePointer<Void>) -> Void)>

    Objective C

    typedef void (*CFTreeReleaseCallBack) ( const void *info );

    Параметры

    info

    Предоставленный программу информационный указатель обеспечил в a CFTreeContext структура.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Функция обратного вызова раньше сохраняла определенный с помощью программы информационный указатель.

    Объявление

    Swift

    typealias CFTreeRetainCallBack = CFunctionPointer<((UnsafePointer<Void>) -> UnsafePointer<Void>)>

    Objective C

    typedef const void *(*CFTreeRetainCallBack) ( const void *info );

    Параметры

    info

    Предоставленный программу информационный указатель обеспечил в a CFTreeContext структура.

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

    Значение для использования каждый раз, когда информационный указатель сохраняется, который обычно является info если различное значение должно использоваться, параметр передал этому обратному вызову, но может быть различным значением.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

Типы данных

Прочие условия

  • Структура, содержащая определенные с помощью программы данные и обратные вызовы для объекта CFTree.

    Объявление

    Swift

    struct CFTreeContext { var version: CFIndex var info: UnsafeMutablePointer<Void> var retain: CFTreeRetainCallBack var release: CFTreeReleaseCallBack var copyDescription: CFTreeCopyDescriptionCallBack }

    Objective C

    struct CFTreeContext { CFIndex version; void *info; CFTreeRetainCallBack retain; CFTreeReleaseCallBack release; CFTreeCopyDescriptionCallBack copyDescription; }; typedef struct CFTreeContext CFTreeContext;

    Поля

    version

    Номер версии типа структуры, передаваемого в в качестве параметра функции создания CFTree. Эта структура является версией 0.

    info

    Указатель C на определенный с помощью программы блок данных, называемый информационным указателем.

    retain

    Обратный вызов раньше сохранял info поле. Если этот параметр не является указателем на функцию корректного прототипа, поведение не определено. Это значение может быть NULL.

    release

    Обратный вызов, привыкший к выпуску a ранее, сохраняется info поле. Если этот параметр не является указателем на функцию корректного прототипа, поведение не определено. Это значение может быть NULL.

    copyDescription

    Обратный вызов раньше предоставлял описание info поле.

    Доступность

    Доступный в OS X v10.0 и позже.

  • Ссылка на объект CFTree.

    Объявление

    Swift

    typealias CFTreeRef = CFTree

    Objective C

    typedef struct __CFTree *CFTreeRef;

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.