И NSDictionary
, и NSArray
являются классами коллекции, т. Е. Группируют вместе другие объекты.
NSArray - это «упорядоченная коллекция» - каждый элемент в коллекции имеет целочисленный индекс, поэтому существуетявный порядок предметов.Если вы поменяете местами порядок элементов в коллекции, то коллекция больше не будет «той же самой», поскольку порядок отличается.Объект может появляться в коллекции более одного раза.
NSSet - это «неупорядоченная коллекция» - каждый элемент появляется в сумке, порядок не имеет значения, и объект может существовать только один раз в сумке.
NSDictionary - это «индексированная коллекция» - каждый элемент в коллекции имеет ключ и может быть получен с помощью этого ключа.Объект может появляться более одного раза, при этом разные ключи могут указывать на один и тот же объект, но ключ может появляться только один раз.Словарь также является формой «хэш-таблицы», если у вас есть опыт работы в области компьютерных наук.
При синтаксическом анализе PLIST массивы и словари являются основными типами, с которыми вы имеете дело.Когда вы редактируете PLIST в XCode - если вы устанавливаете что-то в качестве типа Array, то все его дочерние элементы отображаются как «Item 0, Item 1, Item 2 ...», тогда как если вы устанавливаете его как тип Dictionary, то этодети являются ключом: пары значений.
Один из важных вариантов использования для типов различий заключается в следующем.
Представьте себе журнальное приложение, которое содержит несколько статей.Порядок статей важен, и поэтому вы должны хранить каждую статью в массиве.Если вы хотите изменить порядок статей, вы должны изменить порядок массива в списке.
Сами статьи могут быть представлены словарями, возможно, содержащими такие ключи, как "TextFile", "Background", "ArticleType".Вы используете словарь, потому что можете добавить дополнительную информацию в словарь в будущем, а механизм key: value делает ваш код понятным.