NSMutableSet против NSMutableArray

Какая разница?

В моем контексте мне нужно иметь возможность динамически добавлять и удалять объекты. Пользователь нажимает на строки таблицы, которые проверяют и выключают и, таким образом, добавляют или удаляют ссылочный объект из списка.

Удивительно, что массив имеет индексированные элементы, а set не имеет индексов?

Ответы

Ответ 1

An NSSet/NSMutableSet не сохраняет элементы в каком-либо конкретном порядке. NSArray/NSMutableArray хранит элементы в определенном порядке. Если вы создаете табличное представление, вы обязательно должны использовать массив в качестве источника данных.

Ответ 2

Кроме того, NSMutableSet гарантирует, что все объекты уникальны.

NSMutableArray хорошо сочетается с UITableView, поскольку элементы имеют индекс, поэтому вы можете возвратить [количество массивов], чтобы получить количество строк таблицы, или [array objectAtIndex: rowNumber], чтобы легко связать элемент со строкой.

Ответ 3

Кроме того, согласно документации, тестирование для членства объектов происходит быстрее с помощью NSSets.

Вы можете использовать наборы как альтернативу массивам, когда порядок элементы не важны и производительность при тестировании объекта содержится в множестве - это рассмотрение, тогда как массивы упорядочены, тестирование для членства происходит медленнее, чем с наборами.

Ответ 4

Хорошо, есть 3 основных отличия. 1) Установки неупорядочены 2) Не имеют индекса и 3) Не могут иметь повторяющиеся значения, где массивы упорядочены, индексируются и могут хранить повторяющиеся значения.