NSMapTable
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSFastEnumeration -
NSObjectProtocol -
Печатаемый -
NSCoding -
NSCopying -
NSFastEnumeration -
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в iOS 6.0 и позже.
NSMapTable непостоянный набор, смоделированный после NSDictionary но предоставляет различные возможности.
Главной опции состоял в том, чтобы содержать ключи и/или значения «слабо» способом, что записи удалены, когда в отношении одного из объектов предъявляют претензии.
Его ключи или значения могут быть скопированы на вводе или могут использовать идентификационные данные указателя для равенства и хеширования.
Это может содержать произвольные указатели (его содержание не ограничивается к тому, чтобы быть объектами).
Можно сконфигурировать
NSMapTableэкземпляр для работы на произвольные указатели и не только возражает, несмотря на то, что обычно Вы призваны использовать функцию C API дляvoid *указатели. (См. Управляющие Таблицы Карты для получения дополнительной информации) основанный на объектах API (такой какsetObject:forKey:) не будет работать на необъектные указатели без преобразования типа.
При конфигурировании таблиц карты обратите внимание на то, что только опции, перечисленные в NSMapTableOptions, гарантируют, что остальная часть API будет работать правильно — включая копирование, архивацию и быстрое перечисление. В то время как другой NSPointerFunctions опции используются для определенных конфигураций, например, для содержания произвольных указателей, не, все комбинации опций допустимы. С некоторыми комбинациями таблица карты может не работать правильно или даже не может быть инициализирована правильно.
Разделение на подклассы примечаний
NSMapTable не подходит для разделения на подклассы.
-
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Доступность
Доступный в iOS 6.0 и позже.
-
Возвращает новую таблицу карты, инициализированную с данными опциями
Объявление
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Доступность
Доступный в iOS 6.0 и позже.
-
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Доступность
Доступный в iOS 6.0 и позже.
-
Возвращает новый объект таблицы карты, имеющий сильные ссылки к ключам и значениям.
Объявление
Swift
class func strongToStrongObjectsMapTable() -> NSMapTableObjective C
+ (NSMapTable *)strongToStrongObjectsMapTableВозвращаемое значение
Новый объект таблицы карты, имеющий сильные ссылки к ключам и значениям.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
-
Возвращает новый объект таблицы карты, имеющий слабые ссылки на ключи и сильные ссылки к значениям.
Объявление
Swift
class func weakToStrongObjectsMapTable() -> NSMapTableObjective C
+ (NSMapTable *)weakToStrongObjectsMapTableВозвращаемое значение
Новый объект таблицы карты, имеющий слабые ссылки на ключи и сильные ссылки к значениям.
Специальные замечания
Использование слабых-к-сильному таблиц карты не рекомендуется. Сильные значения для обнуленных слабых ключей продолжают сохраняться, пока таблица карты не изменяет размеры себя.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
-
Возвращает новый объект таблицы карты, имеющий сильные ссылки к ключам и слабые ссылки на значения.
Объявление
Swift
class func strongToWeakObjectsMapTable() -> NSMapTableObjective C
+ (NSMapTable *)strongToWeakObjectsMapTableВозвращаемое значение
Новый объект таблицы карты, имеющий сильные ссылки к ключам и слабые ссылки на значения.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
-
Возвращает новый объект таблицы карты, имеющий слабые ссылки на ключи и значения.
Объявление
Swift
class func weakToWeakObjectsMapTable() -> NSMapTableObjective C
+ (NSMapTable *)weakToWeakObjectsMapTableВозвращаемое значение
Новый объект таблицы карты, имеющий слабые ссылки на ключи и значения.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
-
Возвращает значение, связанное с данным ключом.
Объявление
Swift
func objectForKey(_aKey: AnyObject) -> AnyObject?Objective C
- (id)objectForKey:(id)aKeyПараметры
aKeyКлюч, для которого можно возвратить соответствующее значение.
Возвращаемое значение
Значение связалось с
aKey, илиnilесли никакое значение не связано сaKey.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
-
Возвращает объект перечислителя, позволяющий Вам доступ каждый ключ в таблице карты.
Возвращаемое значение
Объект перечислителя, позволяющий Вам доступ каждый ключ в таблице карты.
Обсуждение
Следующий фрагмент кода иллюстрирует, как Вы могли бы использовать метод.
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Доступность
Доступный в iOS 6.0 и позже.
-
Возвращает объект перечислителя, позволяющий Вам доступ каждое значение в таблице карты.
Объявление
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Доступность
Доступный в iOS 6.0 и позже.
-
countСвойствоЧисло пар ключ/значение в таблице карты. (только для чтения)
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
-
Добавляет данная пара ключ/значение к таблице карты.
Объявление
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Доступность
Доступный в iOS 6.0 и позже.
-
Удаляет данный ключ и его присваиваемое значение от таблицы карты.
Объявление
Swift
func removeObjectForKey(_aKey: AnyObject)Objective C
- (void)removeObjectForKey:(id)aKeyПараметры
aKeyКлюч для удаления.
Обсуждение
Ничего не делает если
aKeyне существует.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
-
Освобождает таблицу карты от ее записей.
Объявление
Swift
func removeAllObjects()Objective C
- (void)removeAllObjectsОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
-
Возвращает представление словаря таблицы карты.
Объявление
Swift
func dictionaryRepresentation() -> [NSObject : AnyObject]Objective C
- (NSDictionary *)dictionaryRepresentationВозвращаемое значение
Представление словаря таблицы карты.
Обсуждение
Значения таблицы карты и ключи должны соответствовать всем требованиям, указанным в
setObject:forKey:вNSMutableDictionary.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
-
keyPointerFunctionsСвойствоУказатель функционирует табличное использование карты для управления ключами. (только для чтения)
Объявление
Swift
@NSCopying var keyPointerFunctions: NSPointerFunctions { get }Objective C
@property(readonly, copy) NSPointerFunctions *keyPointerFunctionsОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
См. также
-
valuePointerFunctionsСвойствоУказатель функционирует табличное использование карты для управления значениями. (только для чтения)
Объявление
Swift
@NSCopying var valuePointerFunctions: NSPointerFunctions { get }Objective C
@property(readonly, copy) NSPointerFunctions *valuePointerFunctionsОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
См. также
-
Константы, используемые в качестве компонентов в битовом поле для указания поведения элементов (ключи и значения) в
NSMapTableобъект.Объявление
Swift
typealias NSMapTableOptions = IntObjective C
enum { NSMapTableStrongMemory = 0, NSMapTableCopyIn = NSPointerFunctionsCopyIn, NSMapTableObjectPointerPersonality = NSPointerFunctionsObjectPointerPersonality, NSMapTableWeakMemory = NSPointerFunctionsWeakMemory }; typedef NSUInteger NSMapTableOptions;Константы
-
NSMapTableStrongMemoryУказывает сильную ссылку от таблицы карты до ее содержания.
Равный
NSPointerFunctionsStrongMemory.Доступный в iOS 6.0 и позже.
-
NSMapTableCopyInИспользование память получает функцию, чтобы выделить и скопировать элементы на вводе (см.
acquireFunction[NSPointerFunctions]).Равный
NSPointerFunctionsCopyIn.Доступный в iOS 6.0 и позже.
-
NSMapTableObjectPointerPersonalityИспользуйте смещенный хеш указателя и прямое равенство, описание объекта.
Равный
NSPointerFunctionsObjectPointerPersonality.Доступный в iOS 6.0 и позже.
-
NSMapTableWeakMemoryИспользует слабое чтение и барьеры записи, подходящие для ARC или GC. Используя
NSPointerFunctionsWeakMemoryссылки на объект повернутся кNULLна последнем выпуске. РавныйNSMapTableZeroingWeakMemory.Доступный в iOS 6.0 и позже.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 6.0 и позже.
-
