Набор
Набор является объектом платформы Основы, основная роль которого должна хранить объекты в форме массивов, словарей и наборов.
Классы набора
Основные классы —NSArray
, NSSet
, и NSDictionary
— совместно используйте много функций вместе:
Они могут содержать только объекты, но объекты могут иметь любой тип. Экземпляр
NSArray
, например, мог содержать кошек, собак, или вомбатов или любую комбинацию их.Они поддерживают сильные ссылки к своему содержанию.
Они являются неизменными, но имеют непостоянный подкласс, позволяющий Вам изменять содержание набора.
Можно выполнить итерации по их использованию содержания
NSEnumerator
или быстрое перечисление.
Какао также обеспечивает три класса —NSPointerArray
, NSHashTable
, и NSMapTable
— это моделируется на этих классах, но которые отличаются следующими способами:
Они могут содержать элементы кроме объектов.
Они предлагают другие опции управления памятью.
Они являются непостоянными.
Так как объект коллекции Какао может содержать любой вид объекта (в отличие от наборов в некоторых других средах), Вы обычно не создаете специальные классы набора для содержания объектов определенного типа.
Упорядочивание схем
Наборы хранят и продают другие объекты в определенной схеме упорядочивания:
NSArray
и его непостоянный подклассNSMutableArray
используйте основанную на нуле индексацию.В других средах массив можно вызвать вектором, таблицей или списком.
NSPointerArray
моделируется послеNSMutableArray
, но это может также содержатьNULL
значения (которые способствуют количеству объекта). Можно также установить количество массива указателей непосредственно (что-то, что Вы не можете сделать в традиционном массиве).NSDictionary
и его непостоянный подклассNSMutableDictionary
используйте пары ключ/значение.В других средах словарь может упоминаться как хэш-таблица или хешировать карту.
NSMapTable
моделируется послеNSMutableDictionary
но предоставляет различные возможности, в частности поддерживать слабые отношения в собравшей «мусор» среде.NSSet
и его непостоянный подклассNSMutableSet
обеспечьте неупорядоченное хранение объектов.Какао также обеспечивает
NSCountedSet
, который является подклассомNSMutableSet
и который проводит подсчет того, сколько раз каждый объект был добавлен к набору.NSHashTable
моделируется послеNSMutableSet
но предоставляет различные возможности, главным образом поддерживать слабые отношения в собравшей «мусор» среде.