NSMutableSet против NSMutableArray - PullRequest
15 голосов
/ 30 июля 2009

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

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

Неужели предположение, что в массиве есть индексированные элементы, а в наборе нет индексов?

Ответы [ 4 ]

29 голосов
/ 30 июля 2009

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

23 голосов
/ 30 июля 2009

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

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

3 голосов
/ 15 августа 2012

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

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

0 голосов
/ 19 декабря 2015

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...