NSMutableSet против NSMutableArray
-
05-07-2019 - |
Вопрос
Какая разница?
В моем контексте мне нужно иметь возможность динамически добавлять и удалять объекты. Пользователь нажимает на строки таблицы, которые включают и выключают проверку и, таким образом, добавляют или удаляют ссылочный объект из списка.
Неожиданное предположение, что в массиве есть индексированные элементы, а в наборе нет индексов?
Решение
NSSet
/ NSMutableSet
не хранит элементы в каком-либо определенном порядке. NSArray
/ NSMutableArray
сохраняет элементы в определенном порядке. Если вы создаете табличное представление, вам определенно следует использовать массив в качестве источника данных.
Другие советы
Кроме того, NSMutableSet гарантирует, что все объекты являются уникальными. Р>
NSMutableArray хорошо сочетается с UITableView, поскольку элементы имеют индекс, поэтому вы можете вернуть [array count], чтобы получить количество строк таблицы, или [array objectAtIndex: rowNumber], чтобы легко связать элемент со строкой.
Кроме того, согласно документация , проверка на членство в объектах выполняется быстрее с помощью NSSets.
Вы можете использовать наборы в качестве альтернативы массивам, когда порядок элементы не важны и производительность при проверке, является ли объект содержится в наборе соображение, а массивы упорядочены, тестирование на членство выполняется медленнее, чем с наборами.
Ну, есть 3 основных различия. 1) Наборы неупорядочены 2) Не имеют индекса & amp; 3) Не может иметь повторяющихся значений, когда массивы упорядочены, проиндексированы и усилены; может хранить повторяющиеся значения. Р>