NSHashTable
NSHashTable моделируется после NSSet но предоставляет различные возможности, в частности поддерживать слабые отношения.
Это может содержать слабые ссылки на свои элементы.
Его элементы могут быть скопированы на вводе или могут использовать идентификационные данные указателя для равенства и хеширования.
Это может содержать произвольные указатели (его элементы не ограничиваются к тому, чтобы быть объектами).
Можно сконфигурировать
NSHashTableэкземпляр для работы на произвольные указатели и не только возражает, несмотря на то, что обычно Вы призваны использовать функцию C API дляvoid *указатели. (См. Хэш-таблицы для получения дополнительной информации) основанный на объектах API (такой какaddObject:) не будет работать на необъектные указатели без преобразования типа.
Из-за его опций, NSHashTable не набор, потому что он может вести себя по-другому (например, если равенство указателя указано два isEqual: строки будут оба вводиться).
При конфигурировании хэш-таблиц обратите внимание на то, что только опции, перечисленные в Опциях Хэш-таблицы, гарантируют, что остальная часть API будет работать правильно — включая копирование, архивацию и быстрое перечисление. В то время как другой NSPointerFunctions опции используются для определенных конфигураций, например, для содержания произвольных указателей, не, все комбинации опций допустимы. С некоторыми комбинациями хэш-таблица может не работать правильно или даже не может быть инициализирована правильно.
Разделение на подклассы примечаний
NSHashTable не подходит для разделения на подклассы.
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSFastEnumeration -
NSObjectProtocol -
Печатаемый -
NSCoding -
NSCopying -
NSFastEnumeration -
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.5 и позже.
-
init (options:capacity:) - initWithOptions:capacity:Определяемый инициализаторВозвращает хэш-таблицу, инициализированную с данными атрибутами.
Объявление
Swift
init(optionsoptions: NSPointerFunctionsOptions, capacitycapacity: Int)Objective C
- (instancetype)initWithOptions:(NSPointerFunctionsOptions)optionscapacity:(NSUInteger)capacityПараметры
optionsНемного поля, указывающего опции для элементов в хэш-таблице. Для возможных значений посмотрите
“Hash Table Options”.capacityНачальное число элементов хэш-таблица может содержать.
Возвращаемое значение
Хэш-таблица, инициализированная с опциями, указанными
optionsи начальная способностьcapacity.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
init (pointerFunctions:capacity:) - initWithPointerFunctions:capacity:Определяемый инициализаторВозвращает хэш-таблицу, инициализированную с заданными функциями и способностью.
Объявление
Swift
init(pointerFunctionsfunctions: NSPointerFunctions, capacityinitialCapacity: Int)Objective C
- (instancetype)initWithPointerFunctions:(NSPointerFunctions *)functionscapacity:(NSUInteger)initialCapacityПараметры
functionsУказатель функционирует для новой хэш-таблицы.
initialCapacityНачальная способность хэш-таблицы.
Возвращаемое значение
Хэш-таблица, инициализированная с заданными функциями и способностью.
Обсуждение
Хэш-таблицы выделяют дополнительную память по мере необходимости, таким образом,
initialCapacityпросто устанавливает начальную способность объекта.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает новую хэш-таблицу для хранения слабых ссылок на его содержание.
Объявление
Swift
class func weakObjectsHashTable() -> NSHashTableObjective C
+ (NSHashTable *)weakObjectsHashTableВозвращаемое значение
Новое имеет таблицу, использующую опции
NSHashTableZeroingWeakMemoryиNSPointerFunctionsObjectPersonalityи имеет начальную способность0.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.8 и позже.
-
Возвращает хэш-таблицу с данными опциями функций подсказки.
Объявление
Swift
init(optionsoptions: NSPointerFunctionsOptions) -> NSHashTableObjective C
+ (NSHashTable *)hashTableWithOptions:(NSPointerFunctionsOptions)optionsПараметры
optionsНемного поля, указывающего опции для элементов в хэш-таблице. Для возможных значений посмотрите
“Hash Table Options”.Возвращаемое значение
Хэш-таблица с данными опциями функций подсказки.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
allObjects allObjectsСвойствоЭлементы хэш-таблицы. (только для чтения)
Объявление
Swift
var allObjects: [AnyObject] { get }Objective C
@property(readonly, copy) NSArray *allObjectsОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Один из объектов в хэш-таблице. (только для чтения)
Объявление
Swift
var anyObject: AnyObject? { get }Objective C
@property(nonatomic, readonly) id anyObjectОбсуждение
Один из объектов в хэш-таблице, или
nilесли хэш-таблица не содержит объектов.Объект возвратился, выбран в удобстве хэш-таблицы — выбор, как гарантируют, не будет случаен.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает булево значение, указывающее, содержит ли хэш-таблица данный объект.
Объявление
Swift
func containsObject(_anObject: AnyObject) -> BoolObjective C
- (BOOL)containsObject:(id)anObjectПараметры
anObjectОбъект протестировать на членство в хэш-таблице.
Возвращаемое значение
YEStrueесли хэш-таблица содержитanObject, иначеNOfalse.Обсуждение
Используемый тест равенства зависит от выбранной опции индивидуальности. Например, выбор
NSPointerFunctionsObjectPersonalityопция будет использоватьisEqual:определить равенство. ПосмотритеNSPointerFunctionsOptionsдля получения дополнительной информации об опциях индивидуальности и их соответствующих тестах равенства.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
количество количествоСвойствоЧисло элементов в хэш-таблице. (только для чтения)
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Определяет, содержит ли хэш-таблица данный объект и возвраты, возражающие, присутствует ли она
Объявление
Swift
func member(_object: AnyObject) -> AnyObject?Objective C
- (id)member:(id)objectПараметры
objectОбъект протестировать на членство в хэш-таблице.
Возвращаемое значение
Если
objectэлемент хэш-таблицы, возвратовobject, иначе возвратыnil.Обсуждение
Используемый тест равенства зависит от выбранной опции индивидуальности. Например, выбор
NSPointerFunctionsObjectPersonalityопция будет использоватьisEqual:определить равенство. ПосмотритеNSPointerFunctionsOptionsдля получения дополнительной информации об опциях индивидуальности и их соответствующих тестах равенства.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает объект перечислителя, позволяющий Вам доступ каждый объект в хэш-таблице.
Объявление
Swift
func objectEnumerator() -> NSEnumeratorObjective C
- (NSEnumerator *)objectEnumeratorВозвращаемое значение
Объект перечислителя, позволяющий Вам доступ каждый объект в хэш-таблице.
Обсуждение
Следующий фрагмент кода иллюстрирует, как можно использовать этот метод.
NSEnumerator *enumerator = [myHashTable objectEnumerator];id value;while ((value = [enumerator nextObject])) {/* code that acts on the hash table's values */}
Специальные замечания
Более эффективно использовать быстрый протокол перечисления (см.
NSFastEnumeration).Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
setRepresentation setRepresentationСвойствоНабор, содержащий элементы хэш-таблицы. (только для чтения)
Объявление
Swift
@NSCopying var setRepresentation: NSSet { get }Objective C
@property(readonly, copy) NSSet *setRepresentationОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Добавляет данный объект к хэш-таблице.
Объявление
Swift
func addObject(_object: AnyObject)Objective C
- (void)addObject:(id)objectПараметры
objectОбъект добавить к хэш-таблице.
Оператор импорта
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 removeObject(_object: AnyObject)Objective C
- (void)removeObject:(id)objectПараметры
objectОбъект удалить из хэш-таблицы.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает булево значение, указывающее, пересекается ли данная хэш-таблица с хэш-таблицей получения.
Объявление
Swift
func intersectsHashTable(_other: NSHashTable) -> BoolObjective C
- (BOOL)intersectsHashTable:(NSHashTable *)otherПараметры
otherХэш-таблица, с которой можно сравнить хэш-таблицу получения.
Возвращаемое значение
YEStrueеслиotherпересекается с хэш-таблицей получения, иначеNOfalse.Обсуждение
Тест равенства, используемый для элементов, зависит от выбранной опции индивидуальности. Например, выбор
NSPointerFunctionsObjectPersonalityопция будет использоватьisEqual:определить равенство. ПосмотритеNSPointerFunctionsOptionsдля получения дополнительной информации об опциях индивидуальности и их соответствующих тестах равенства.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Удаляет из хэш-таблицы получения каждый элемент, который не является элементом другой данной хэш-таблицы.
Объявление
Swift
func intersectHashTable(_other: NSHashTable)Objective C
- (void)intersectHashTable:(NSHashTable *)otherПараметры
otherХэш-таблица, с которой можно выполнить пересечение.
Обсуждение
Тест равенства, используемый для элементов, зависит от выбранной опции индивидуальности. Например, выбор
NSPointerFunctionsObjectPersonalityопция будет использоватьisEqual:определить равенство. ПосмотритеNSPointerFunctionsOptionsдля получения дополнительной информации об опциях индивидуальности и их соответствующих тестах равенства.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает булево значение, указывающее, равна ли данная хэш-таблица хэш-таблице получения.
Объявление
Swift
func isEqualToHashTable(_other: NSHashTable) -> BoolObjective C
- (BOOL)isEqualToHashTable:(NSHashTable *)otherПараметры
otherХэш-таблица, с которой можно сравнить хэш-таблицу получения.
Возвращаемое значение
YEStrueесли содержаниеotherравны содержанию хэш-таблицы получения, иначеNOfalse.Обсуждение
Две хэш-таблицы имеют равное содержание, если у каждого из них есть то же число членов и если каждый элемент одной хэш-таблицы присутствует в другом.
Тест равенства, используемый для элементов, зависит от выбранной опции индивидуальности. Например, выбор
NSPointerFunctionsObjectPersonalityопция будет использоватьisEqual:определить равенство. ПосмотритеNSPointerFunctionsOptionsдля получения дополнительной информации об опциях индивидуальности и их соответствующих тестах равенства.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает булево значение, указывающее, присутствует ли каждый элемент в хэш-таблице получения также в другой данной хэш-таблице.
Объявление
Swift
func isSubsetOfHashTable(_other: NSHashTable) -> BoolObjective C
- (BOOL)isSubsetOfHashTable:(NSHashTable *)otherПараметры
otherХэш-таблица, с которой можно сравнить хэш-таблицу получения.
Возвращаемое значение
YEStrueесли каждый элемент в хэш-таблице получения также присутствует вother, иначеNOfalse.Обсуждение
Тест равенства, используемый для элементов, зависит от выбранной опции индивидуальности. Например, выбор
NSPointerFunctionsObjectPersonalityопция будет использоватьisEqual:определить равенство. ПосмотритеNSPointerFunctionsOptionsдля получения дополнительной информации об опциях индивидуальности и их соответствующих тестах равенства.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Удаляет каждый элемент в другой данной хэш-таблице из хэш-таблицы получения, если существующий.
Объявление
Swift
func minusHashTable(_other: NSHashTable)Objective C
- (void)minusHashTable:(NSHashTable *)otherПараметры
otherХэш-таблица элементов для удаления из хэш-таблицы получения.
Обсуждение
Тест равенства, используемый для элементов, зависит от выбранной опции индивидуальности. Например, выбор
NSPointerFunctionsObjectPersonalityопция будет использоватьisEqual:определить равенство. ПосмотритеNSPointerFunctionsOptionsдля получения дополнительной информации об опциях индивидуальности и их соответствующих тестах равенства.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Добавляет каждый элемент в другой данной хэш-таблице к хэш-таблице получения, если не существующий.
Объявление
Swift
func unionHashTable(_other: NSHashTable)Objective C
- (void)unionHashTable:(NSHashTable *)otherПараметры
otherХэш-таблица элементов для добавления к хэш-таблице получения.
Обсуждение
Тест равенства, используемый для элементов, зависит от выбранной опции индивидуальности. Например, выбор
NSPointerFunctionsObjectPersonalityопция будет использоватьisEqual:определить равенство. ПосмотритеNSPointerFunctionsOptionsдля получения дополнительной информации об опциях индивидуальности и их соответствующих тестах равенства.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
pointerFunctions pointerFunctionsСвойствоУказатель функционирует для хэш-таблицы. (только для чтения)
Объявление
Swift
@NSCopying var pointerFunctions: NSPointerFunctions { get }Objective C
@property(readonly, copy) NSPointerFunctions *pointerFunctionsОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
hashTableWithWeakObjects + hashTableWithWeakObjects(OS X v10.8)Возвращает новую хэш-таблицу для хранения слабых ссылок на его содержание.
Оператор осуждения
Использовать
weakObjectsHashTableвместо этого.Объявление
Objective C
+ (id)hashTableWithWeakObjectsВозвращаемое значение
Новое имеет таблицу, использующую опции
NSHashTableZeroingWeakMemoryиNSPointerFunctionsObjectPersonalityи имеет начальную способность0.Специальные замечания
Этот метод не поддерживается под Automatic Reference Counting (ARC).
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.8.
-
Компоненты в битовом поле для указания поведения элементов в
NSHashTableобъект.Объявление
Swift
typealias NSHashTableOptions = IntObjective C
enum { NSHashTableStrongMemory = 0, NSHashTableZeroingWeakMemory = NSPointerFunctionsZeroingWeakMemory, NSHashTableCopyIn = NSPointerFunctionsCopyIn, NSHashTableObjectPointerPersonality = NSPointerFunctionsObjectPointerPersonality, NSHashTableWeakMemory = NSPointerFunctionsWeakMemory }; typedef NSUInteger NSHashTableOptions;Константы
-
NSHashTableStrongMemoryNSHashTableStrongMemoryРавный
NSPointerFunctionsStrongMemory.Доступный в OS X v10.5 и позже.
-
NSHashTableZeroingWeakMemoryNSHashTableZeroingWeakMemoryЭта опция была осуждена. Вместо этого используйте
NSHashTableWeakMemoryопция. РавныйNSPointerFunctionsZeroingWeakMemory.Обратите внимание на то, что
NSHashTableWeakMemoryне полностью эквивалентно и совместим с поведением предыдущей опции: объекты должны быть безопасными от слабой ссылки при ручном и автоматическом подсчете ссылок; не все объекты.Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.8.
-
NSHashTableCopyInNSHashTableCopyInРавный
NSPointerFunctionsCopyIn.Доступный в OS X v10.5 и позже.
-
NSHashTableObjectPointerPersonalityNSHashTableObjectPointerPersonalityДоступный в OS X v10.5 и позже.
-
NSHashTableWeakMemoryNSHashTableWeakMemoryРавный
NSPointerFunctionsWeakMemory. Использует слабое чтение и барьеры записи, подходящие для ARC или GC. ИспользуяNSPointerFunctionsWeakMemoryссылки на объект повернутся кNULLна последнем выпуске.Доступный в OS X v10.8 и позже.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
