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() -> Bool
Objective C
- (BOOL)beginContentAccess
Возвращаемое значение
YES, если отбрасываемое содержание все еще доступно и было теперь успешно получено доступ; иначе,
NO
false
.Обсуждение
Вызовите этот метод, если память объекта необходима или собирается использоваться. Этот метод постепенно увеличивает переменную счетчика, таким образом защищая память объекта от того, чтобы возможно быть отброшенным. Класс с реализацией может решить, что этот метод попытается воссоздать содержание, если они были отброшены и возвращают 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() -> Bool
Objective C
- (BOOL)isContentDiscarded
Возвращаемое значение
YES
true
если было отброшено содержание; иначе,NO
false
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.6 и позже.
См. также