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(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
Доступность
Доступный в iOS 6.0 и позже.
-
Возвращает новую таблицу карты, инициализированную с данными опциями
Объявление
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
Доступность
Доступный в iOS 6.0 и позже.
-
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
Доступность
Доступный в iOS 6.0 и позже.
-
Возвращает новый объект таблицы карты, имеющий сильные ссылки к ключам и значениям.
Объявление
Swift
class func strongToStrongObjectsMapTable() -> NSMapTable
Objective C
+ (NSMapTable *)strongToStrongObjectsMapTable
Возвращаемое значение
Новый объект таблицы карты, имеющий сильные ссылки к ключам и значениям.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 6.0 и позже.
-
Возвращает новый объект таблицы карты, имеющий слабые ссылки на ключи и сильные ссылки к значениям.
Объявление
Swift
class func weakToStrongObjectsMapTable() -> NSMapTable
Objective C
+ (NSMapTable *)weakToStrongObjectsMapTable
Возвращаемое значение
Новый объект таблицы карты, имеющий слабые ссылки на ключи и сильные ссылки к значениям.
Специальные замечания
Использование слабых-к-сильному таблиц карты не рекомендуется. Сильные значения для обнуленных слабых ключей продолжают сохраняться, пока таблица карты не изменяет размеры себя.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 6.0 и позже.
-
Возвращает новый объект таблицы карты, имеющий сильные ссылки к ключам и слабые ссылки на значения.
Объявление
Swift
class func strongToWeakObjectsMapTable() -> NSMapTable
Objective C
+ (NSMapTable *)strongToWeakObjectsMapTable
Возвращаемое значение
Новый объект таблицы карты, имеющий сильные ссылки к ключам и слабые ссылки на значения.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 6.0 и позже.
-
Возвращает новый объект таблицы карты, имеющий слабые ссылки на ключи и значения.
Объявление
Swift
class func weakToWeakObjectsMapTable() -> NSMapTable
Objective 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() -> 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
Доступность
Доступный в 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)
anObject
forKey:(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 = Int
Objective 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 и позже.
-