Подтвердить что ты не робот

Почему яблоко использует NSOrderedSet вместо NSArray для упорядоченного отношения отношения mutli в CoreData?

В основных данных, если у нас есть отношения с несколькими значениями, например, когда бизнес может иметь несколько ключевых слов, в генераторе подкласса NSManagedObject, Apple будет использовать NSOrderedSet вместо NSArray.

Они оба почти равны, за исключением того, что проверка прав собственности в NSOrderedSet несколько быстрее.

Любая причина, по которой Apple не использует гораздо более знакомый и знаменитый NSArray?

4b9b3361

Ответ 1

Мое предположение было бы следующим: поскольку NSOrderedSet управляет набором отдельных элементов, аналогичным NSSet для неупорядоченных отношений.

С помощью NSArray вы можете создать объект, связанный с другим объектом более одного раза.

Ответ 2

Из docs:

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