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

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

Разработчик

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

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

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

NSGarbageCollector

NSGarbageCollector обеспечивает удобный интерфейс для системы сборки «мусора».

Сборщик «мусора» какао является консервативным сборщиком «мусора» поколений. Это использует «барьеры записи» для обнаружения перекрестных хранилищ поколений указателей так, чтобы «молодые» объекты могли быть собраны быстро.

Вы включаете сборку «мусора» (GC) при помощи -fobjc-gc compiler опция. Этот переключатель вызывает генерацию примитивов присвоения барьера записи. Необходимо использовать эту опцию на файле главного приложения и всех других, используемых приложением, включая платформы и пакеты. Пакеты проигнорированы, если они не способны к GC.

Коллектор определяет то, что является мусором путем рекурсивного исследования всех узлов начиная с глобальных переменных, возможные узлы, на которые ссылаются от штабелей потока и всех узлов, отмеченных как наличие «внешних» ссылок. Узлы, не достигнутые этим поиском, считают мусором. Слабые ссылки на узлы мусора тогда очищены.

Узлы мусора, которые являются объектами, отправляются (в произвольном порядке) a finalize сообщение, и в конце концов finalize сообщения были отправлены, их память восстанавливается. Это - ошибка периода выполнения (называемый «восстановлением») для хранения объекта, завершаемого в тот, который не является. Для получения дополнительной информации посмотрите Реализацию завершить Метода в Руководстве по программированию Сборки «мусора».

Можно запросить набор от любого потока (см. collectIfNeeded и collectExhaustively).

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


Соответствует


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


Не применимый

Objective C

@import Foundation;

Доступность


Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.10.
  • Возвращает сборщик «мусора» по умолчанию.

    Объявление

    Objective C

    + (id)defaultCollector

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

    Сборщик «мусора» по умолчанию для текущего процесса. Возвраты nil если текущий процесс не работает со сборкой «мусора».

    Обсуждение

    Существует самое большее один сборщик «мусора» для Какао в единственном процессе.

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

    Objective C

    @import Foundation;

    Доступность

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

    Осуждаемый в OS X v10.10.

  • Временно отключает наборы.

    Объявление

    Objective C

    - (void)disable

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Доступность

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

    Осуждаемый в OS X v10.10.

    См. также

    – включить

  • Включает набор после того, как был отключен набор.

    Объявление

    Objective C

    - (void)enable

    Обсуждение

    Этот метод балансирует единственный вызов disable. Чтобы повторно включить набор, этот метод должен быть вызван так много раз, как был disable.

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

    Objective C

    @import Foundation;

    Доступность

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

    Осуждаемый в OS X v10.10.

  • isEnabled - isEnabled (OS X v10.10)

    Возвращает булево значение, указывающее, включается ли сборка «мусора» в настоящее время для текущего процесса.

    Объявление

    Objective C

    - (BOOL)isEnabled

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

    YEStrue если сборка «мусора» включена для текущего процесса, иначе NOfalse.

    Обсуждение

    Этот метод возвраты NOfalse если сборка «мусора» идет, но была временно приостановлена (использование disable).

    Проверять, использует ли текущий процесс проверку сборки «мусора» результат [NSGarbageCollector defaultCollector]. Если defaultCollector nil, тогда сборка «мусора» постоянно выключена. Если defaultCollector не nil, тогда текущий процесс использует сборку «мусора» — можно тогда использовать isEnabled определить, позволяют ли коллектору фактически работать прямо сейчас.

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

    Objective C

    @import Foundation;

    Доступность

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

    Осуждаемый в OS X v10.10.

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

    Объявление

    Objective C

    - (BOOL)isCollecting

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

    YEStrue если набор в настоящее время происходит, иначе NOfalse.

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

    Objective C

    @import Foundation;

    Доступность

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

    Осуждаемый в OS X v10.6.

  • Говорит получателю собираться многократно.

    Объявление

    Objective C

    - (void)collectExhaustively

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Доступность

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

    Осуждаемый в OS X v10.10.

  • Если пороги потребления памяти были превышены, говорит получателю собираться.

    Объявление

    Objective C

    - (void)collectIfNeeded

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Доступность

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

    Осуждаемый в OS X v10.10.

  • Указывает, что не будет собрана данная подсказка.

    Объявление

    Objective C

    - (void)disableCollectorForPointer:(const void *)ptr

    Параметры

    ptr

    Указатель на память, которая не должна быть собрана.

    Обсуждение

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

    • NSMutableDictionary *globalDictionary;
    • globalDictionary = [NSMutableDictionary dictionary];
    • [[NSGarbageCollector defaultCollector]
    • disableCollectorForPointer:globalDictionary];

    Новый словарь не будет предметом коллекционирования и сохранится для времени жизни приложения, если это не будет впоследствии передано как параметр enableCollectorForPointer:. Для больше о корневых объектах и отсканированной памяти, см. Руководство по программированию Сборки «мусора».

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

    Objective C

    @import Foundation;

    Доступность

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

    Осуждаемый в OS X v10.10.

  • Указывает, что может быть собрана данная подсказка.

    Объявление

    Objective C

    - (void)enableCollectorForPointer:(const void *)ptr

    Параметры

    ptr

    Указатель на память, которая может быть собрана.

    Обсуждение

    Вы используете этот метод для создания памяти, ранее отмеченной как безнадежная в отношении оплаты. Например, учитывая адрес глобального словаря, создаваемого в disableCollectorForPointer:, Вы могли сделать предмет коллекционирования словаря следующим образом:

    • [[NSGarbageCollector defaultCollector]
    • enableCollectorForPointer:globalDictionary];

    Для больше о корневых объектах и отсканированной памяти, см. Руководство по программированию Сборки «мусора».

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

    Objective C

    @import Foundation;

    Доступность

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

    Осуждаемый в OS X v10.10.

  • зона - зона (OS X v10.10)

    Возвращает зону неотсканированной памяти.

    Объявление

    Objective C

    - (NSZone *)zone

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

    Зона памяти не сканирующейся памяти.

    Обсуждение

    Коллектор обеспечивает a NSZoneMalloc- интерфейс выделения стиля, прежде всего для совместимости с существующим кодом, поддерживающим зональное сродство. Такая память не сканируется, и необходимо освободить ее использование NSZoneFree. Это точно эквивалентно вызову NSAllocateCollectable с опцией NSCollectorDisabledOption.

    Необходимо обычно выделять, собрал «мусор» использование памяти NSAllocateCollectable

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

    Objective C

    @import Foundation;

    Доступность

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

    Осуждаемый в OS X v10.10.