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(keyOptions
keys
: NSPointerFunctionsOptions, valueOptionsvalues
: NSPointerFunctionsOptions, capacitycapacity
: Int)Objective C
- (instancetype)initWithKeyOptions:(NSPointerFunctionsOptions)
keys
valueOptions:(NSPointerFunctionsOptions)values
capacity:(NSUInteger)capacity
Параметры
keys
Немного поля, указывающего опции для ключей в таблице карты. Для возможных значений посмотрите
“NSMapTableOptions”
.values
Немного поля, указывающего опции для значений в таблице карты. Для возможных значений посмотрите
“NSMapTableOptions”
.capacity
Начальная способность таблицы карты. Это - просто подсказка; таблица карты может впоследствии расти и уменьшиться как требуется.
Возвращаемое значение
Таблица карты инициализировала использование данных опций.
Обсуждение
values
должен содержать записи во всех индексах, указанных вkeys
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.5 и позже.
-
Возвращает новую таблицу карты, инициализированную с данными опциями
Объявление
Swift
init(keyOptions
keyOptions
: NSPointerFunctionsOptions, valueOptionsvalueOptions
: NSPointerFunctionsOptions) -> NSMapTableObjective C
+ (NSMapTable *)mapTableWithKeyOptions:(NSPointerFunctionsOptions)
keyOptions
valueOptions:(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(keyPointerFunctions
keyFunctions
: NSPointerFunctions, valuePointerFunctionsvalueFunctions
: NSPointerFunctions, capacityinitialCapacity
: Int)Objective C
- (instancetype)initWithKeyPointerFunctions:(NSPointerFunctions *)
keyFunctions
valuePointerFunctions:(NSPointerFunctions *)valueFunctions
capacity:(NSUInteger)initialCapacity
Параметры
keyFunctions
Функции табличное использование карты для управления ключами.
valueFunctions
Функции табличное использование карты для управления значениями.
initialCapacity
Начальная способность таблицы карты. Это - просто подсказка; таблица карты может впоследствии расти и уменьшиться как требуется.
Возвращаемое значение
Таблица карты, инициализированная с заданными функциями.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.5 и позже.
-
Возвращает новый объект таблицы карты, имеющий сильные ссылки к ключам и значениям.
Объявление
Swift
class func strongToStrongObjectsMapTable() -> NSMapTable
Objective C
+ (NSMapTable *)strongToStrongObjectsMapTable
Возвращаемое значение
Новый объект таблицы карты, имеющий сильные ссылки к ключам и значениям.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.8 и позже.
-
Возвращает новый объект таблицы карты, имеющий слабые ссылки на ключи и сильные ссылки к значениям.
Объявление
Swift
class func weakToStrongObjectsMapTable() -> NSMapTable
Objective C
+ (NSMapTable *)weakToStrongObjectsMapTable
Возвращаемое значение
Новый объект таблицы карты, имеющий слабые ссылки на ключи и сильные ссылки к значениям.
Специальные замечания
Использование слабых-к-сильному таблиц карты не рекомендуется. Сильные значения для обнуленных слабых ключей продолжают сохраняться, пока таблица карты не изменяет размеры себя.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.8 и позже.
-
Возвращает новый объект таблицы карты, имеющий сильные ссылки к ключам и слабые ссылки на значения.
Объявление
Swift
class func strongToWeakObjectsMapTable() -> NSMapTable
Objective C
+ (NSMapTable *)strongToWeakObjectsMapTable
Возвращаемое значение
Новый объект таблицы карты, имеющий сильные ссылки к ключам и слабые ссылки на значения.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.8 и позже.
-
Возвращает новый объект таблицы карты, имеющий слабые ссылки на ключи и значения.
Объявление
Swift
class func weakToWeakObjectsMapTable() -> NSMapTable
Objective 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() -> NSEnumerator
Objective 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)
anObject
forKey:(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 = Int
Objective C
enum { NSMapTableStrongMemory = 0, NSMapTableZeroingWeakMemory = NSPointerFunctionsZeroingWeakMemory, NSMapTableCopyIn = NSPointerFunctionsCopyIn, NSMapTableObjectPointerPersonality = NSPointerFunctionsObjectPointerPersonality, NSMapTableWeakMemory = NSPointerFunctionsWeakMemory }; typedef NSUInteger NSMapTableOptions;
Константы
-
NSMapTableStrongMemory
NSMapTableStrongMemory
Указывает сильную ссылку от таблицы карты до ее содержания.
Равный
NSPointerFunctionsStrongMemory
.Доступный в OS X v10.5 и позже.
-
NSMapTableZeroingWeakMemory
NSMapTableZeroingWeakMemory
Указывает слабую ссылку обнуления от таблицы карты до ее содержания. Эта опция была осуждена. Эта опция была заменена
NSMapTableWeakMemory
опция, вызывающая обнуляющее слабое поведение при подсчете ссылки на руководство, автоматическом подсчете ссылок и сборке «мусора».Обратите внимание на то, что это не полностью эквивалентно и совместимо с поведением предыдущей опции: объекты должны быть безопасными от слабой ссылки при ручном и автоматическом подсчете ссылок; не все объекты.
Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.8.
-
NSMapTableCopyIn
NSMapTableCopyIn
Использование память получает функцию, чтобы выделить и скопировать элементы на вводе (см.
acquireFunction
[NSPointerFunctions
]).Равный
NSPointerFunctionsCopyIn
.Доступный в OS X v10.5 и позже.
-
NSMapTableObjectPointerPersonality
NSMapTableObjectPointerPersonality
Используйте смещенный хеш указателя и прямое равенство, описание объекта.
Равный
NSPointerFunctionsObjectPointerPersonality
.Доступный в OS X v10.5 и позже.
-
NSMapTableWeakMemory
NSMapTableWeakMemory
Использует слабое чтение и барьеры записи, подходящие для ARC или GC. Используя
NSPointerFunctionsWeakMemory
ссылки на объект повернутся кNULL
на последнем выпуске. РавныйNSMapTableZeroingWeakMemory
.Доступный в OS X v10.8 и позже.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.5 и позже.
-