NSMutableSet против NSMutableArray
Какая разница?
В моем контексте мне нужно иметь возможность динамически добавлять и удалять объекты. Пользователь нажимает на строки таблицы, которые проверяют и выключают и, таким образом, добавляют или удаляют ссылочный объект из списка.
Удивительно, что массив имеет индексированные элементы, а set не имеет индексов?
Ответы
Ответ 1
An NSSet
/NSMutableSet
не сохраняет элементы в каком-либо конкретном порядке. NSArray
/NSMutableArray
хранит элементы в определенном порядке. Если вы создаете табличное представление, вы обязательно должны использовать массив в качестве источника данных.
Ответ 2
Кроме того, NSMutableSet гарантирует, что все объекты уникальны.
NSMutableArray хорошо сочетается с UITableView, поскольку элементы имеют индекс, поэтому вы можете возвратить [количество массивов], чтобы получить количество строк таблицы, или [array objectAtIndex: rowNumber], чтобы легко связать элемент со строкой.
Ответ 3
Кроме того, согласно документации, тестирование для членства объектов происходит быстрее с помощью NSSets.
Вы можете использовать наборы как альтернативу массивам, когда порядок элементы не важны и производительность при тестировании объекта содержится в множестве - это рассмотрение, тогда как массивы упорядочены, тестирование для членства происходит медленнее, чем с наборами.
Ответ 4
Хорошо, есть 3 основных отличия. 1) Установки неупорядочены 2) Не имеют индекса и 3) Не могут иметь повторяющиеся значения, где массивы упорядочены, индексируются и могут хранить повторяющиеся значения.