NSDiscardableContent
Вы реализуете этот протокол, когда объекты класса имеют субкомпоненты, которые могут быть отброшены, если не используясь, таким образом дав приложению меньший объем потребляемой памяти.
NSDiscardableContent жизненный цикл объекта зависит от «встречной» переменной. NSDiscardableContent объект является purgeable блоком памяти, отслеживающей то, используется ли это в настоящее время некоторым другим объектом. Когда эта память будет считана или будет все еще необходима, ее переменная счетчика будет больше, чем или равняться 1. Когда это не будет использоваться и сможет быть отброшено, переменная счетчика будет равна 0.
Когда счетчик равен 0, блок памяти может быть отброшен, если память трудна в то время. Для отбрасывания содержания вызвать discardContentIfPossible на объекте, который освободит связанную память, если переменная счетчика будет равняться 0.
По умолчанию, NSDiscardableContent объекты инициализируются с их счетчиком, равным 1, чтобы гарантировать, что они сразу не отбрасываются системой управления памятью. От этой точки необходимо отслеживать состояние переменной счетчика. Вызов beginContentAccess метод постепенно увеличивает переменную счетчика 1, таким образом гарантируя, что не будет отброшен объект. Когда Вы больше не нуждаетесь в объекте, постепенно уменьшаете его счетчик путем вызова endContentAccess.
Платформа Основы включает NSPurgeableData класс, обеспечивающий реализацию по умолчанию этого протокола.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.6 и позже.
-
beginContentAccess () - beginContentAccessТребуемыйВозвращает булево значение, указывающее, доступно ли отбрасываемое содержание все еще и было успешно получено доступ. (требуемый)
Объявление
Swift
func beginContentAccess() -> BoolObjective C
- (BOOL)beginContentAccessВозвращаемое значение
YES, если отбрасываемое содержание все еще доступно и было теперь успешно получено доступ; иначе,
NOfalse.Обсуждение
Вызовите этот метод, если память объекта необходима или собирается использоваться. Этот метод постепенно увеличивает переменную счетчика, таким образом защищая память объекта от того, чтобы возможно быть отброшенным. Класс с реализацией может решить, что этот метод попытается воссоздать содержание, если они были отброшены и возвращают YES, если воссоздание было успешно. Конструкторы этого протокола должны повысить исключения если
NSDiscardableContentобъекты используются когдаbeginContentAccessметод не вызвали на них.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.6 и позже.
См. также
-
endContentAccess () - endContentAccessТребуемыйВызванный, если к отбрасываемому содержанию больше не получают доступ. (требуемый)
Объявление
Swift
func endContentAccess()Objective C
- (void)endContentAccessОбсуждение
Этот метод постепенно уменьшает переменную счетчика объекта, который будет обычно возвращать значение переменной счетчика вниз к 0, который позволяет отбрасываемому содержанию объекта быть выброшенным при необходимости.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.6 и позже.
См. также
-
Вызванный для отбрасывания содержания получателя, если значение счетчика, к которому получают доступ, 0. (требуемый)
Объявление
Swift
func discardContentIfPossible()Objective C
- (void)discardContentIfPossibleОбсуждение
Если значение счетчика, к которому получают доступ, 0, этот метод должен только отбросить содержание объекта. Иначе, это ничего не должно делать.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.6 и позже.
См. также
-
isContentDiscarded () - isContentDiscardedТребуемыйВозвращает булево значение, указывающее, было ли отброшено содержание. (требуемый)
Объявление
Swift
func isContentDiscarded() -> BoolObjective C
- (BOOL)isContentDiscardedВозвращаемое значение
YEStrueесли было отброшено содержание; иначе,NOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.6 и позже.
См. также
