Почему яблоко использует NSOrderedSet вместо NSArray для упорядоченного отношения отношения mutli в CoreData?
В основных данных, если у нас есть отношения с несколькими значениями, например, когда бизнес может иметь несколько ключевых слов, в генераторе подкласса NSManagedObject, Apple будет использовать NSOrderedSet вместо NSArray.
Они оба почти равны, за исключением того, что проверка прав собственности в NSOrderedSet несколько быстрее.
Любая причина, по которой Apple не использует гораздо более знакомый и знаменитый NSArray?
Ответы
Ответ 1
Мое предположение было бы следующим: поскольку NSOrderedSet
управляет набором отдельных элементов, аналогичным NSSet
для неупорядоченных отношений.
С помощью NSArray
вы можете создать объект, связанный с другим объектом более одного раза.
Ответ 2
Из docs:
Вы можете использовать упорядоченные наборы как альтернативу массивам, когда порядок элементов важен, а производительность при проверке того, содержится ли объект в наборе, является рассмотрением-тестированием для членства в массиве медленнее, чем тестирование для членства в набор.