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

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

Разработчик

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

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

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

NSCache

NSCache объект является подобным набору контейнером или кэшем, хранящим пары ключ/значение, подобные NSDictionary класс. Разработчики часто включают кэши, чтобы временно хранить объекты с текущими данными, которые являются дорогими для создания. Многократное использование этих объектов может обеспечить выигрыши в производительности, потому что не должны быть повторно вычислены их значения. Если память трудна, Однако объекты не критически важны по отношению к приложению и могут быть отброшены. Если отброшено, их значения должны будут быть повторно вычислены снова при необходимости.

В то время как пара ключ/значение находится в кэше, кэш поддерживает сильную ссылку к нему. Тип общих данных, сохраненный в NSCache объекты являются объектом, реализующим NSDiscardableContent протокол. Хранение этого типа объекта в кэше обладает преимуществами, потому что его содержание может быть отброшено, когда это не необходимо больше, таким образом сохраняя память. По умолчанию, NSDiscardableContent объекты в кэше автоматически удалены из кэша, если их содержание отбрасывается, несмотря на то, что может быть изменена эта автоматическая политика удаления. Если NSDiscardableContent объект помещается в кэш, вызовы кэша discardContentIfPossible на нем после его удаления.

NSCache объекты отличаются от других непостоянных наборов несколькими способами:

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

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

  • В отличие от этого NSMutableDictionary объект, кэш не копирует ключевые объекты, помещающиеся в него.

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

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


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


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


Swift

import Foundation

Objective C

@import Foundation;

Доступность


Доступный в OS X v10.6 и позже.
  • имя имя Свойство

    Имя кэша.

    Объявление

    Swift

    var name: String

    Objective C

    @property(copy) NSString *name

    Обсуждение

    Пустая строка, если не указано никакое имя.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    func objectForKey(_ key: AnyObject) -> AnyObject?

    Objective C

    - (id)objectForKey:(id)key

    Параметры

    key

    Объект, идентифицирующий значение.

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

    Значение связалось с key, или nil если никакое значение не связано с key.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Устанавливает значение указанного ключа в кэше.

    Объявление

    Swift

    func setObject(_ obj: AnyObject, forKey key: AnyObject)

    Objective C

    - (void)setObject:(id)obj forKey:(id)key

    Параметры

    obj

    Объект, который будет сохранен в кэше.

    key

    Ключ, с которым можно связать значение.

    Обсуждение

    В отличие от этого NSMutableDictionary объект, кэш не копирует ключевые объекты, помещающиеся в него.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

    См. также

    – setObject:forKey:cost:

  • Устанавливает значение указанного ключа в кэше и связывает пару ключ/значение с указанной стоимостью.

    Объявление

    Swift

    func setObject(_ obj: AnyObject, forKey key: AnyObject, cost num: Int)

    Objective C

    - (void)setObject:(id)obj forKey:(id)key cost:(NSUInteger)num

    Параметры

    obj

    Объект сохранить в кэше.

    key

    Ключ, с которым можно связать значение.

    num

    Стоимость, с которой можно связать пару ключ/значение.

    Обсуждение

    cost значение используется для вычислений суммы, охватывающей затраты всех объектов в кэше. Когда память ограничивается или когда общая стоимость кэша затмевает максимальную позволенную общую стоимость, кэш мог начать процесс замещения для удаления некоторых его элементов. Однако этот процесс замещения не находится в гарантируемом порядке. Как следствие, при попытке управлять себестоимостью для достижения некоторого определенного поведения, последствия могли бы быть вредны для программы. Как правило, очевидная стоимость является размером значения в байтах. Если та информация не легко доступна, Вы не должны проходить через проблему попытаться вычислить ее, поскольку выполнение так приведет к повышению стоимости использования кэша. Передача в 0 для себестоимости, если у Вас иначе нет ничего полезного, чтобы передать, или просто использовать setObject:forKey: метод, не требующий a cost значение, которое будет передано в.

    В отличие от этого NSMutableDictionary объект, кэш не копирует ключевые объекты, помещающиеся в него.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Удаляет значение указанного ключа в кэше.

    Объявление

    Swift

    func removeObjectForKey(_ key: AnyObject)

    Objective C

    - (void)removeObjectForKey:(id)key

    Параметры

    key

    Ключ, идентифицирующий значение, которое будет удалено.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

    См. также

    – removeAllObjects

  • Освобождает кэш.

    Объявление

    Swift

    func removeAllObjects()

    Objective C

    - (void)removeAllObjects

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

    См. также

    – removeObjectForKey:

  • countLimit countLimit Свойство

    Максимальное количество объектов кэш должно содержать.

    Объявление

    Swift

    var countLimit: Int

    Objective C

    @property NSUInteger countLimit

    Обсуждение

    Значение по умолчанию 0, что не означает предела.

    Это не строгий предел — если кэш пробегается через предел, объект в кэше мог бы быть выселен немедленно, позже, или возможно никогда, в зависимости от подробных данных реализации кэша.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • totalCostLimit totalCostLimit Свойство

    Максимальная общая стоимость, которую может содержать кэш, прежде чем это начнет выселять объекты.

    Объявление

    Swift

    var totalCostLimit: Int

    Objective C

    @property NSUInteger totalCostLimit

    Обсуждение

    Значение по умолчанию 0, который не указывает предела.

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

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

    См. также

    – setObject:forKey:cost:

  • Булево значение, указывающее, выселит ли кэш автоматически отбрасываемые объекты содержания, содержание которых было отброшено.

    Объявление

    Swift

    var evictsObjectsWithDiscardedContent: Bool

    Objective C

    @property BOOL evictsObjectsWithDiscardedContent

    Обсуждение

    Если YEStrue, кэш выселит отбрасываемый объект содержания после того, как будет отброшено его содержание. Если NOfalse, это не будет. Значение по умолчанию YEStrue.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • делегат делегат Свойство

    Делегат кэша.

    Объявление

    Swift

    unowned(unsafe) var delegate: NSCacheDelegate?

    Objective C

    @property(assign) id< NSCacheDelegate > delegate

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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