NSMapTable
NSMapTable непостоянный набор, смоделированный после NSDictionary но предоставляет различные возможности.
Главной опции состоял в том, чтобы содержать ключи и/или значения «слабо» способом, что записи удалены, когда в отношении одного из объектов предъявляют претензии.
Его ключи или значения могут быть скопированы на вводе или могут использовать идентификационные данные указателя для равенства и хеширования.
Это может содержать произвольные указатели (его содержание не ограничивается к тому, чтобы быть объектами).
Можно сконфигурировать
NSMapTableэкземпляр для работы на произвольные указатели и не только возражает, несмотря на то, что обычно Вы призваны использовать функцию C API дляvoid *указатели. (См. Управляющие Таблицы Карты для получения дополнительной информации) основанный на объектах API (такой какsetObject:forKey:) не будет работать на необъектные указатели без преобразования типа.
При конфигурировании таблиц карты обратите внимание на то, что только опции, перечисленные в NSMapTableOptions, гарантируют, что остальная часть API будет работать правильно — включая копирование, архивацию и быстрое перечисление. В то время как другой NSPointerFunctions опции используются для определенных конфигураций, например, для содержания произвольных указателей, не, все комбинации опций допустимы. С некоторыми комбинациями таблица карты может не работать правильно или даже не может быть инициализирована правильно.
Разделение на подклассы примечаний
NSMapTable не подходит для разделения на подклассы.
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSFastEnumeration -
NSObjectProtocol -
Печатаемый -
NSCoding -
NSCopying -
NSFastEnumeration -
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.5 и позже.
-
init (keyOptions:valueOptions:capacity:) - initWithKeyOptions:valueOptions:capacity:Определяемый инициализаторВозвращает таблицу карты, инициализированную с данными опциями.
Объявление
Swift
init(keyOptionskeys: NSPointerFunctionsOptions, valueOptionsvalues: NSPointerFunctionsOptions, capacitycapacity: Int)Objective C
- (instancetype)initWithKeyOptions:(NSPointerFunctionsOptions)keysvalueOptions:(NSPointerFunctionsOptions)valuescapacity:(NSUInteger)capacityПараметры
keysНемного поля, указывающего опции для ключей в таблице карты. Для возможных значений посмотрите
“NSMapTableOptions”.valuesНемного поля, указывающего опции для значений в таблице карты. Для возможных значений посмотрите
“NSMapTableOptions”.capacityНачальная способность таблицы карты. Это - просто подсказка; таблица карты может впоследствии расти и уменьшиться как требуется.
Возвращаемое значение
Таблица карты инициализировала использование данных опций.
Обсуждение
valuesдолжен содержать записи во всех индексах, указанных вkeys.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает новую таблицу карты, инициализированную с данными опциями
Объявление
Swift
init(keyOptionskeyOptions: NSPointerFunctionsOptions, valueOptionsvalueOptions: NSPointerFunctionsOptions) -> NSMapTableObjective C
+ (NSMapTable *)mapTableWithKeyOptions:(NSPointerFunctionsOptions)keyOptionsvalueOptions:(NSPointerFunctionsOptions)valueOptionsПараметры
keyOptionsНемного поля, указывающего опции для ключей в таблице карты. Для возможных значений посмотрите
“NSMapTableOptions”.valueOptionsНемного поля, указывающего опции для значений в таблице карты. Для возможных значений посмотрите
“NSMapTableOptions”.Возвращаемое значение
Новая таблица карты, инициализированная с данными опциями.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
init (keyPointerFunctions:valuePointerFunctions:capacity:) - initWithKeyPointerFunctions:valuePointerFunctions:capacity:Определяемый инициализаторВозвращает таблицу карты, инициализированную с заданными функциями.
Объявление
Swift
init(keyPointerFunctionskeyFunctions: NSPointerFunctions, valuePointerFunctionsvalueFunctions: NSPointerFunctions, capacityinitialCapacity: Int)Objective C
- (instancetype)initWithKeyPointerFunctions:(NSPointerFunctions *)keyFunctionsvaluePointerFunctions:(NSPointerFunctions *)valueFunctionscapacity:(NSUInteger)initialCapacityПараметры
keyFunctionsФункции табличное использование карты для управления ключами.
valueFunctionsФункции табличное использование карты для управления значениями.
initialCapacityНачальная способность таблицы карты. Это - просто подсказка; таблица карты может впоследствии расти и уменьшиться как требуется.
Возвращаемое значение
Таблица карты, инициализированная с заданными функциями.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает новый объект таблицы карты, имеющий сильные ссылки к ключам и значениям.
Объявление
Swift
class func strongToStrongObjectsMapTable() -> NSMapTableObjective C
+ (NSMapTable *)strongToStrongObjectsMapTableВозвращаемое значение
Новый объект таблицы карты, имеющий сильные ссылки к ключам и значениям.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.8 и позже.
-
Возвращает новый объект таблицы карты, имеющий слабые ссылки на ключи и сильные ссылки к значениям.
Объявление
Swift
class func weakToStrongObjectsMapTable() -> NSMapTableObjective C
+ (NSMapTable *)weakToStrongObjectsMapTableВозвращаемое значение
Новый объект таблицы карты, имеющий слабые ссылки на ключи и сильные ссылки к значениям.
Специальные замечания
Использование слабых-к-сильному таблиц карты не рекомендуется. Сильные значения для обнуленных слабых ключей продолжают сохраняться, пока таблица карты не изменяет размеры себя.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.8 и позже.
-
Возвращает новый объект таблицы карты, имеющий сильные ссылки к ключам и слабые ссылки на значения.
Объявление
Swift
class func strongToWeakObjectsMapTable() -> NSMapTableObjective C
+ (NSMapTable *)strongToWeakObjectsMapTableВозвращаемое значение
Новый объект таблицы карты, имеющий сильные ссылки к ключам и слабые ссылки на значения.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.8 и позже.
-
Возвращает новый объект таблицы карты, имеющий слабые ссылки на ключи и значения.
Объявление
Swift
class func weakToWeakObjectsMapTable() -> NSMapTableObjective C
+ (NSMapTable *)weakToWeakObjectsMapTableВозвращаемое значение
Новый объект таблицы карты, имеющий слабые ссылки на ключи и значения.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.8 и позже.
-
Возвращает значение, связанное с данным ключом.
Объявление
Swift
func objectForKey(_aKey: AnyObject) -> AnyObject?Objective C
- (id)objectForKey:(id)aKeyПараметры
aKeyКлюч, для которого можно возвратить соответствующее значение.
Возвращаемое значение
Значение связалось с
aKey, илиnilесли никакое значение не связано сaKey.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает объект перечислителя, позволяющий Вам доступ каждый ключ в таблице карты.
Возвращаемое значение
Объект перечислителя, позволяющий Вам доступ каждый ключ в таблице карты.
Обсуждение
Следующий фрагмент кода иллюстрирует, как Вы могли бы использовать метод.
NSEnumerator *enumerator = [myMapTable keyEnumerator];id value;while ((value = [enumerator nextObject])) {/* code that acts on the map table's keys */}
Специальные замечания
Более эффективно использовать быстрый протокол перечисления (см.
NSFastEnumeration).Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает объект перечислителя, позволяющий Вам доступ каждое значение в таблице карты.
Объявление
Swift
func objectEnumerator() -> NSEnumeratorObjective C
- (NSEnumerator *)objectEnumeratorВозвращаемое значение
Объект перечислителя, позволяющий Вам доступ каждое значение в таблице карты.
Обсуждение
Следующий фрагмент кода иллюстрирует, как Вы могли бы использовать метод.
NSEnumerator *enumerator = [myMapTable objectEnumerator];id value;while ((value = [enumerator nextObject])) {/* code that acts on the map table's values */}
Специальные замечания
Более эффективно использовать быстрый протокол перечисления (см.
NSFastEnumeration).Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
количество количествоСвойствоЧисло пар ключ/значение в таблице карты. (только для чтения)
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Добавляет данная пара ключ/значение к таблице карты.
Объявление
Swift
func setObject(_anObject: AnyObject, forKeyaKey: AnyObject)Objective C
- (void)setObject:(id)anObjectforKey:(id)aKeyПараметры
anObjectЗначение для
aKey. Это значение не должно бытьnil.aKeyКлюч для
anObject. Это значение не должно бытьnil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Удаляет данный ключ и его присваиваемое значение от таблицы карты.
Объявление
Swift
func removeObjectForKey(_aKey: AnyObject)Objective C
- (void)removeObjectForKey:(id)aKeyПараметры
aKeyКлюч для удаления.
Обсуждение
Ничего не делает если
aKeyне существует.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Освобождает таблицу карты от ее записей.
Объявление
Swift
func removeAllObjects()Objective C
- (void)removeAllObjectsОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает представление словаря таблицы карты.
Объявление
Swift
func dictionaryRepresentation() -> [NSObject : AnyObject]Objective C
- (NSDictionary *)dictionaryRepresentationВозвращаемое значение
Представление словаря таблицы карты.
Обсуждение
Значения таблицы карты и ключи должны соответствовать всем требованиям, указанным в
setObject:forKey:вNSMutableDictionary.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
keyPointerFunctions keyPointerFunctionsСвойствоУказатель функционирует табличное использование карты для управления ключами. (только для чтения)
Объявление
Swift
@NSCopying var keyPointerFunctions: NSPointerFunctions { get }Objective C
@property(readonly, copy) NSPointerFunctions *keyPointerFunctionsОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
См. также
-
Указатель функционирует табличное использование карты для управления значениями. (только для чтения)
Объявление
Swift
@NSCopying var valuePointerFunctions: NSPointerFunctions { get }Objective C
@property(readonly, copy) NSPointerFunctions *valuePointerFunctionsОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
См. также
-
Возвращает новый объект таблицы карты, имеющий сильные ссылки к ключам и значениям.
Оператор осуждения
Использовать
strongToStrongObjectsMapTableвместо этого.Объявление
Objective C
+ (id)mapTableWithStrongToStrongObjectsВозвращаемое значение
Новый объект таблицы карты, имеющий сильные ссылки к ключам и значениям.
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.8.
-
Возвращает новый объект таблицы карты, имеющий слабые ссылки на ключи и сильные ссылки к значениям.
Оператор осуждения
Использовать
weakToStrongObjectsMapTableвместо этого.Объявление
Objective C
+ (id)mapTableWithWeakToStrongObjectsВозвращаемое значение
Новый объект таблицы карты, имеющий слабые ссылки на ключи и сильные ссылки к значениям.
Специальные замечания
NSMapTableсоздаваемое использование объектов этого метода не поддерживает слабые ссылки под Automatic Reference Counting (ARC).Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.8.
-
Возвращает новый объект таблицы карты, имеющий сильные ссылки к ключам и слабые ссылки на значения.
Оператор осуждения
Использовать
strongToWeakObjectsMapTableвместо этого.Объявление
Objective C
+ (id)mapTableWithStrongToWeakObjectsВозвращаемое значение
Новый объект таблицы карты, имеющий сильные ссылки к ключам и слабые ссылки на значения.
Специальные замечания
NSMapTableсоздаваемое использование объектов этого метода не поддерживает слабые ссылки под Automatic Reference Counting (ARC).Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.8.
-
Возвращает новый объект таблицы карты, имеющий слабые ссылки на ключи и значения.
Оператор осуждения
Использовать
weakToWeakObjectsMapTableвместо этого.Объявление
Objective C
+ (id)mapTableWithWeakToWeakObjectsВозвращаемое значение
Новый объект таблицы карты, имеющий слабые ссылки на ключи и значения.
Специальные замечания
NSMapTableсоздаваемое использование объектов этого метода не поддерживает слабые ссылки под Automatic Reference Counting (ARC).Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.8.
-
Константы, используемые в качестве компонентов в битовом поле для указания поведения элементов (ключи и значения) в
NSMapTableобъект.Объявление
Swift
typealias NSMapTableOptions = IntObjective C
enum { NSMapTableStrongMemory = 0, NSMapTableZeroingWeakMemory = NSPointerFunctionsZeroingWeakMemory, NSMapTableCopyIn = NSPointerFunctionsCopyIn, NSMapTableObjectPointerPersonality = NSPointerFunctionsObjectPointerPersonality, NSMapTableWeakMemory = NSPointerFunctionsWeakMemory }; typedef NSUInteger NSMapTableOptions;Константы
-
NSMapTableStrongMemoryNSMapTableStrongMemoryУказывает сильную ссылку от таблицы карты до ее содержания.
Равный
NSPointerFunctionsStrongMemory.Доступный в OS X v10.5 и позже.
-
NSMapTableZeroingWeakMemoryNSMapTableZeroingWeakMemoryУказывает слабую ссылку обнуления от таблицы карты до ее содержания. Эта опция была осуждена. Эта опция была заменена
NSMapTableWeakMemoryопция, вызывающая обнуляющее слабое поведение при подсчете ссылки на руководство, автоматическом подсчете ссылок и сборке «мусора».Обратите внимание на то, что это не полностью эквивалентно и совместимо с поведением предыдущей опции: объекты должны быть безопасными от слабой ссылки при ручном и автоматическом подсчете ссылок; не все объекты.
Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.8.
-
NSMapTableCopyInNSMapTableCopyInИспользование память получает функцию, чтобы выделить и скопировать элементы на вводе (см.
acquireFunction[NSPointerFunctions]).Равный
NSPointerFunctionsCopyIn.Доступный в OS X v10.5 и позже.
-
NSMapTableObjectPointerPersonalityNSMapTableObjectPointerPersonalityИспользуйте смещенный хеш указателя и прямое равенство, описание объекта.
Равный
NSPointerFunctionsObjectPointerPersonality.Доступный в OS X v10.5 и позже.
-
NSMapTableWeakMemoryNSMapTableWeakMemoryИспользует слабое чтение и барьеры записи, подходящие для ARC или GC. Используя
NSPointerFunctionsWeakMemoryссылки на объект повернутся кNULLна последнем выпуске. РавныйNSMapTableZeroingWeakMemory.Доступный в OS X v10.8 и позже.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
